@metreeca/qest - v0.9.1
    Preparing search index...

    Variable TransformsConst

    Transforms: Record<
        | "max"
        | "sample"
        | "min"
        | "sum"
        | "round"
        | "day"
        | "month"
        | "year"
        | "count"
        | "avg"
        | "abs"
        | "floor"
        | "ceil",
        | { name: "count"; aggregate: true; datatype: "number" }
        | { name: "min"; aggregate: true }
        | { name: "max"; aggregate: true }
        | { name: "sum"; aggregate: true; datatype: "number" }
        | { name: "avg"; aggregate: true; datatype: "number" }
        | { name: "sample"; aggregate: true }
        | { name: "abs"; aggregate: false; datatype: "number" }
        | { name: "floor"; aggregate: false; datatype: "number" }
        | { name: "ceil"; aggregate: false; datatype: "number" }
        | { name: "round"; aggregate: false; datatype: "number" }
        | { name: "year"; aggregate: false; datatype: "number" }
        | { name: "month"; aggregate: false; datatype: "number" }
        | { name: "day"; aggregate: false; datatype: "number" },
    > = ...

    Standard value transformations for computed expressions.

    Each transform specifies:

    • name — Transform identifier used in expressions
    • aggregate — Whether the transform operates on collections (true) or individual values (false)
    • datatype — Optional result type; the expected type should match the final value of the transform pipe:
      • "boolean", "number", "string" — Transform produces specific primitive type
      • (omitted) — Transform preserves input type

    The expression parser accepts any valid identifier as a transform name, not just those defined in this registry; this allows applications to extend the transform set without modifying the parser.

    "sum:items.price"      // sum of items.price values
    "round:avg:scores" // average of scores, rounded