sqon-builder
Version:
SQON creation and manipulation library.
49 lines (48 loc) • 1.57 kB
TypeScript
declare enum ArrayFilterKey {
In = "in"
}
declare enum ScalarFilterKey {
GreaterThan = "gt",
LesserThan = "lt"
}
declare enum CombinationKey {
And = "and",
Or = "or",
Not = "not"
}
interface Filter {
op: ArrayFilterKey | ScalarFilterKey;
content: {
field: string;
value: Array<string | number> | number;
};
}
export interface Combination {
op: CombinationKey;
content: Operator[];
}
export declare type Operator = Filter | Combination;
export declare function combine(op: CombinationKey, content: Operator[]): Combination;
export declare function filter(op: ArrayFilterKey | ScalarFilterKey, field: string, value: Array<string | number> | number): Filter;
declare class SQON implements Combination {
op: CombinationKey;
content: Operator[];
constructor(sqon: SQON | Operator | string);
and(content: SQON | SQON[]): SQON;
or(content: SQON | SQON[]): SQON;
not(content: SQON | SQON[]): SQON;
in(field: string, value: Array<string | number>): SQON;
gt(field: string, value: number): SQON;
lt(field: string, value: number): SQON;
static from(sqon: Operator | string): SQON;
static and(content: SQON | SQON[]): SQON;
static or(content: SQON | SQON[]): SQON;
static not(content: SQON | SQON[]): SQON;
static in(field: string, value: Array<string | number>): SQON;
static gt(field: string, value: number): SQON;
static lt(field: string, value: number): SQON;
toString(): string;
private toOperator;
private addFilter;
}
export default SQON;