edgerender-yatl
Version:
Yet Another Template Language
39 lines (38 loc) • 1.21 kB
TypeScript
import type { Clause } from './build';
export declare type Result = string | number | boolean | null | undefined | Date | Result[] | {
[key: string]: Result;
};
declare type LookupType<R> = {
[key: string]: R | (R | LookupType<R>)[] | LookupType<R>;
};
export declare type Context = LookupType<Result>;
declare type AsyncFunction = (...args: any[]) => Promise<Result>;
declare type TemplateFunction = (...args: any[]) => Promise<Result | AsyncFunction>;
export declare type Functions = LookupType<TemplateFunction>;
export default class Evaluator {
private readonly context;
private readonly functions;
private readonly operator_functions;
constructor(context: Context, functions: Functions);
evaluate(c: Clause): Promise<Result>;
private var;
private func_run;
private func_get;
private operation;
private filter_run;
private op_mult_div;
private op_add;
private add_numbers;
private add_arrays;
private add_objects;
private op_subtract;
private subtract_numbers;
private op_in;
private op_equals;
private op_not_equals;
private op_and;
private op_or;
private modifiers;
private lookup_value;
}
export {};