@bufbuild/cel
Version:
A CEL evaluator for ECMAScript
37 lines (36 loc) • 2.5 kB
TypeScript
import type { Constant, Expr, Expr_CreateStruct_Entry, SourceInfo } from "@bufbuild/cel-spec/cel/expr/syntax_pb.js";
export type Eventual<T> = () => T;
export default class Builder {
#private;
sourceInfo: SourceInfo;
nextExpr(offset: number, exprKind: Expr["exprKind"]): Expr;
nextEntry(offset: number, keyKind: Expr_CreateStruct_Entry["keyKind"], value: Expr): Expr_CreateStruct_Entry;
newConstExpr(offset: number, constantKind: Constant["constantKind"]): Expr;
newCallExpr(offset: number, functionName: string, args: Expr[]): Expr;
newMemberCallExpr(offset: number, target: Expr, functionName: string, args: Expr[]): Expr;
newStringExpr(offset: number, sequence: (string | number[])[]): Expr;
newBytesExpr(offset: number, sequence: (string | number[])[]): Expr;
newBoolExpr(offset: number, keyword: "true" | "false"): Expr;
newInt64Expr(offset: number, digits: string): Expr;
newUnsignedInt64Expr(offset: number, digits: string): Expr;
newDoubleExpr(offset: number, digits: string): Expr;
newNullExpr(offset: number): Expr;
newIdentExpr(offset: number, name: string): Expr;
newInfixExpr(offset: number, op: string, args: Expr[]): Expr;
newSelectExpr(offset: number, operand: Expr, field: string): Expr;
newIndexExpr(offset: number, operand: Expr, index: Expr): Expr;
expandHasMacro(offset: number, target: Expr): Expr;
newListExpr(offset: number, elements: Expr[]): Expr;
newBoolMacro(offset: number, iterRange: Expr, iterVar: string, init: boolean, loopStep: Expr, loopCondition: Expr): Expr;
newListMacro(offset: number, iterRange: Expr, iterVar: string, loopStep: Expr): Expr;
expandExistsMacro(offset: number, target: Expr, x: string, test: Expr): Expr;
expandAllMacro(offset: number, target: Expr, x: string, test: Expr): Expr;
expandMapMacro(offset: number, target: Expr, x: string, step: Expr): Expr;
expandMapFilterMacro(offset: number, target: Expr, x: string, test: Expr, step: Expr): Expr;
expandFilterMacro(offset: number, target: Expr, x: string, step: Expr): Expr;
expandExistsOne(offset: number, iterRange: Expr, iterVar: string, step: Expr): Expr;
maybeExpand(offset: number, call: Expr): Expr;
newMapEntry(offset: number, key: Expr, value: Expr): Expr_CreateStruct_Entry;
newStructExpr(offset: number, entries: Expr_CreateStruct_Entry[], messageName?: string): Expr;
newStructEntry(offset: number, field: string, value: Expr): Expr_CreateStruct_Entry;
}