@forestadmin/datasource-toolkit
Version:
29 lines • 1.13 kB
TypeScript
import ConditionTree from './nodes/base';
import { Aggregator } from './nodes/branch';
import { Operator } from './nodes/operators';
import { CompositeId, RecordData } from '../../record';
import { CollectionSchema } from '../../schema';
export type GenericTreeBranch = {
aggregator: Aggregator;
conditions: Array<GenericTree>;
};
export type GenericTreeLeaf = {
field: string;
operator: Operator;
value?: unknown;
};
export type GenericTree = GenericTreeBranch | GenericTreeLeaf;
export default class ConditionTreeFactory {
static MatchNone: ConditionTree;
static MatchAll: ConditionTree;
static matchRecords(schema: CollectionSchema, records: RecordData[]): ConditionTree;
static matchIds(schema: CollectionSchema, ids: CompositeId[]): ConditionTree;
static union(...trees: ConditionTree[]): ConditionTree;
static intersect(...trees: ConditionTree[]): ConditionTree;
static fromPlainObject(json: GenericTree): ConditionTree;
private static matchFields;
private static group;
private static isLeaf;
private static isBranch;
}
//# sourceMappingURL=factory.d.ts.map