UNPKG

@jsonjoy.com/json-expression

Version:

High-performance JSON Pointer implementation

25 lines (24 loc) 1.1 kB
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; }