Type alias FormulaNode

FormulaNode: {
    kind: "literal";
    value: number | string | boolean;
} | {
    kind: "field";
    name: string;
} | {
    kind: "unary";
    op: "-" | "+";
    operand: FormulaNode;
} | {
    kind: "binary";
    left: FormulaNode;
    op: FormulaBinaryOperator;
    right: FormulaNode;
} | {
    args: readonly FormulaNode[];
    kind: "call";
    name: string;
}

A node of a compiled formula (abstract syntax tree). Read-only; the evaluator walks it – no code is generated (no eval, no new Function).

Type declaration

  • Readonly kind: "literal"
  • Readonly value: number | string | boolean

Type declaration

  • Readonly kind: "field"
  • Readonly name: string

Type declaration

  • Readonly kind: "unary"
  • Readonly op: "-" | "+"
  • Readonly operand: FormulaNode

Type declaration

Type declaration

  • Readonly args: readonly FormulaNode[]
  • Readonly kind: "call"
  • Readonly name: string

Example

const ast = compileFormula("[price] * 2").ast;
// { kind: "binary", op: "*", left: { kind: "field", name: "price" }, right: { kind: "literal", value: 2 } }

Since

1.1.95