@jsonjoy.com/json-expression
Version:
High-performance JSON Pointer implementation
25 lines (24 loc) • 1.1 kB
TypeScript
import { Codegen } from '@jsonjoy.com/util/lib/codegen/Codegen';
import { type ExpressionResult } from './codegen-steps';
import { createEvaluate } from './createEvaluate';
import type * as types from './types';
export type JsonExpressionFn = (vars: types.JsonExpressionExecutionContext['vars']) => unknown;
export interface JsonExpressionCodegenOptions extends types.JsonExpressionCodegenContext {
expression: types.Expr;
operators: types.OperatorMap;
}
export declare class JsonExpressionCodegen {
protected options: JsonExpressionCodegenOptions;
protected codegen: Codegen<JsonExpressionFn>;
protected evaluate: ReturnType<typeof createEvaluate>;
constructor(options: JsonExpressionCodegenOptions);
private linkedOperandDeps;
private linkOperandDeps;
private operatorConst;
private subExpression;
protected onExpression(expr: types.Expr | unknown): ExpressionResult;
run(): this;
generate(): import("@jsonjoy.com/util/lib/codegen").JavaScriptLinked<JsonExpressionFn, unknown[]>;
compileRaw(): JsonExpressionFn;
compile(): JsonExpressionFn;
}