@overture-stack/sqon-builder
Version:
SQON creation and manipulation library
27 lines (26 loc) • 1.52 kB
TypeScript
import { ArrayFilterValue, FilterKey, FilterOperator, FilterValue, FilterTypeMap, Operator, SQON, ScalarFilterValue } from './types/sqon';
type SQONBuilder = {
and: (content: SQON | SQON[], pivot?: string) => SQONBuilder;
or: (content: SQON | SQON[], pivot?: string) => SQONBuilder;
not: (content: SQON | SQON[], pivot?: string) => SQONBuilder;
in: (fieldName: string, value: ArrayFilterValue) => SQONBuilder;
gt: (fieldName: string, value: ScalarFilterValue) => SQONBuilder;
lt: (fieldName: string, value: ScalarFilterValue) => SQONBuilder;
removeExactFilter: (filter: FilterOperator) => SQONBuilder;
removeFilter: (fieldName: string, op?: FilterKey, value?: FilterValue) => SQONBuilder;
setFilter: <Key extends FilterKey>(fieldName: string, op: Key, value: FilterTypeMap[Key]['content']['value']) => SQONBuilder;
toString: () => string;
toValue: () => SQON;
} & SQON;
export declare const emptySQON: () => Operator;
declare const SQONBuilder: {
(sqon: SQONBuilder | SQON | string): SQONBuilder;
and: (content: SQON | SQON[], pivot?: string) => SQONBuilder;
or: (content: SQON | SQON[], pivot?: string) => SQONBuilder;
not: (content: SQON | SQON[], pivot?: string) => SQONBuilder;
in: (fieldName: string, value: ArrayFilterValue) => SQONBuilder;
gt: (fieldName: string, value: ScalarFilterValue) => SQONBuilder;
lt: (fieldName: string, value: ScalarFilterValue) => SQONBuilder;
from: (input: unknown) => SQONBuilder;
};
export default SQONBuilder;