@pawel-up/jexl
Version:
Javascript Expression Language: Powerful context-based expression parser and evaluator
27 lines • 1.74 kB
TypeScript
import Expression, { type Context } from './Expression.js';
import { type BinaryOpFunction, type FunctionFunction, type UnaryOpFunction, type Grammar, type TransformFunction } from './grammar.js';
export declare class Jexl {
grammar: Grammar;
constructor();
addBinaryOp(operator: string, precedence: number, fn: BinaryOpFunction, manualEval?: boolean): void;
addFunction(name: string, fn: FunctionFunction): void;
addFunctions(map: Record<string, FunctionFunction>): void;
addUnaryOp(operator: string, fn: UnaryOpFunction): void;
addTransform(name: string, fn: TransformFunction): void;
addTransforms(map: Record<string, TransformFunction>): void;
compile<R>(expression: string): Expression<R>;
createExpression<R = unknown>(expression: string): Expression<R>;
getFunction(name: string): FunctionFunction;
getTransform(name: string): TransformFunction;
eval<R = unknown>(expression: string, context?: Context): Promise<R>;
evalAsString(expression: string, context?: Context): Promise<string>;
evalAsNumber(expression: string, context?: Context): Promise<number>;
evalAsBoolean(expression: string, context?: Context): Promise<boolean>;
evalAsArray<T = unknown>(expression: string, context?: Context): Promise<T[]>;
evalAsEnum<T = string | number | boolean>(expression: string, context: Context | undefined, allowedValues: readonly T[]): Promise<T | undefined>;
evalWithDefault<T = unknown>(expression: string, context: Context | undefined, defaultValue: T): Promise<T>;
expr(strings: string[] | TemplateStringsArray, ...args: unknown[]): Expression;
removeOp(operator: string): void;
private _addGrammarElement;
}
//# sourceMappingURL=Jexl.d.ts.map