UNPKG

ts-flex-query

Version:
53 lines (52 loc) 5.02 kB
import { Expression } from '../core/expression'; import { DataType } from '../types/data-type'; import { EvaluationContext } from '../types/evaluation-context'; import { FunctionContainer } from '../types/function-container'; import { ExpressionArray, FuncFields } from '../types/utils'; export declare class FunctionApplicationExpression implements Expression { readonly container: FunctionContainer; readonly member: string; readonly args: Expression[]; readonly dataType: DataType; constructor(container: FunctionContainer, member: string, args: Expression[]); evaluate(context: EvaluationContext): any; } export declare function func<TContainer extends FunctionContainer, TMember extends FuncFields<TContainer> & string>(container: TContainer, member: TMember, ...args: TContainer extends Record<TMember, (...xs: any) => any> ? ExpressionArray<Parameters<TContainer[TMember]>> : never): TContainer extends Record<TMember, (...xs: any) => any> ? Expression<ReturnType<TContainer[TMember]>> : never; export declare const funcs: { concat: (args_0: Expression<string | undefined>, args_1: Expression<string | undefined>) => Expression<string>; indexOf: (args_0: Expression<string | undefined>, args_1: Expression<string | undefined>) => Expression<number>; endsWith: (args_0: Expression<string | undefined>, args_1: Expression<string | undefined>) => Expression<boolean>; startsWith: (args_0: Expression<string | undefined>, args_1: Expression<string | undefined>) => Expression<boolean>; lower: (args_0: Expression<number | bigint | Date | undefined>, args_1: Expression<number | bigint | Date | undefined>) => Expression<boolean>; add: (args_0: Expression<number | undefined>, args_1: Expression<number | undefined>) => Expression<number | undefined>; sum: (args_0: Expression<(number | undefined)[]>) => Expression<number>; multiply: (args_0: Expression<number | undefined>, args_1: Expression<number | undefined>) => Expression<number | undefined>; xor: (args_0: Expression<boolean | undefined>, args_1: Expression<boolean | undefined>) => Expression<boolean>; contains: (args_0: Expression<string | undefined>, args_1: Expression<string | undefined>) => Expression<boolean>; count: (args_0: Expression<unknown[] | undefined>) => Expression<number>; countDistinct: (args_0: Expression<unknown[] | undefined>) => Expression<number>; maximum: (args_0: Expression<(number | undefined)[]>) => Expression<number | undefined>; minimum: (args_0: Expression<(number | undefined)[]>) => Expression<number | undefined>; average: (args_0: Expression<(number | undefined)[]>) => Expression<number | undefined>; and: (args_0: Expression<boolean | undefined>, args_1: Expression<boolean | undefined>) => Expression<boolean>; or: (args_0: Expression<boolean | undefined>, args_1: Expression<boolean | undefined>) => Expression<boolean>; not: (args_0: Expression<boolean | undefined>) => Expression<boolean>; distinct: (args_0: Expression<unknown[]>) => Expression<unknown[]>; in: (args_0: Expression<unknown>, args_1: Expression<unknown[] | undefined>) => Expression<boolean>; first: (args_0: Expression<unknown[] | undefined>) => Expression<unknown>; equal: (args_0: Expression<unknown>, args_1: Expression<unknown>) => Expression<boolean>; notEqual: (args_0: Expression<unknown>, args_1: Expression<unknown>) => Expression<boolean>; greater: (args_0: Expression<number | bigint | Date | undefined>, args_1: Expression<number | bigint | Date | undefined>) => Expression<boolean>; greaterOrEqual: (args_0: Expression<number | bigint | Date | undefined>, args_1: Expression<number | bigint | Date | undefined>) => Expression<boolean>; lowerOrEqual: (args_0: Expression<number | bigint | Date | undefined>, args_1: Expression<number | bigint | Date | undefined>) => Expression<boolean>; has: (args_0: Expression<unknown>, args_1: Expression<unknown>) => Expression<boolean>; subtract: (args_0: Expression<number | undefined>, args_1: Expression<number | undefined>) => Expression<number | undefined>; divide: (args_0: Expression<number | undefined>, args_1: Expression<number | undefined>) => Expression<number | undefined>; divideInteger: (args_0: Expression<number | undefined>, args_1: Expression<number | undefined>) => Expression<number | undefined>; modulo: (args_0: Expression<number | undefined>, args_1: Expression<number | undefined>) => Expression<number | undefined>; upperCase: (args_0: Expression<string | undefined>) => Expression<string | undefined>; lowerCase: (args_0: Expression<string | undefined>) => Expression<string | undefined>; getLength: (args_0: Expression<string | undefined>) => Expression<number>; asString: (args_0: Expression<unknown>) => Expression<string | undefined>; }; export declare function isFunctionApplication<TContainer>(expr: Expression, container: TContainer, member: keyof TContainer): expr is FunctionApplicationExpression;