UNPKG

@opra/common

Version:
31 lines (30 loc) 1.52 kB
import '../polifils/array-find-last.js'; import type { StrictOmit } from 'ts-gems'; import { Validator } from 'valgen'; import type { ComplexType } from '../document/index.js'; import { ResponsiveMap } from '../helpers/index.js'; import { OpraSchema } from '../schema/index.js'; import { ComparisonExpression, type ComparisonOperator, Expression } from './ast/index.js'; export declare namespace FilterRules { interface Options { caseSensitive?: boolean; } interface Rule { operators?: ComparisonOperator[]; description?: string; prepare?: (args: ComparisonExpression.PrepareArgs) => any; mappedField?: string; } } export declare class FilterRules { protected _rules: ResponsiveMap<FilterRules.Rule>; protected _decoderCache: WeakMap<any, Validator<any, any, import("valgen").ExecutionOptions>>; constructor(rules?: Record<string, FilterRules.Rule>, options?: FilterRules.Options); set(fieldName: string, options?: Partial<StrictOmit<FilterRules.Rule, 'operators'>> & { operators?: ComparisonOperator[] | string; }): void; normalizeFilter(filter: OpraSchema.Field.QualifiedName | Expression, currentType?: ComplexType, scope?: string | '*'): Expression | undefined; protected normalizeFilterAst(ast: Expression, stack: Expression[], currentType?: ComplexType, scope?: string | '*'): Expression | undefined; toJSON(): Record<string, FilterRules.Rule>; [Symbol.iterator](): IterableIterator<[string, FilterRules.Rule]>; }