UNPKG

sqon-builder

Version:

SQON creation and manipulation library.

49 lines (48 loc) 1.57 kB
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;