UNPKG

@qualifyze/airtable-formulator

Version:
37 lines (36 loc) 1.26 kB
import { ExtendedNodeType, GroupNode, GroupType, Operator, TokenNode } from "./primitives"; import { FieldReference } from "./field-reference"; import { OperationNode } from "./operation"; import { FunctionCallNode } from "./function-call"; import { ArgumentListNode } from "./argument-list"; import { ModifierNode } from "./modifier"; import { EnclosedExpressionNode } from "./enclosed-expression"; import { FunctionReference } from "./function-reference"; import { TokenTypeName } from "../tokenize"; /** * Map of all node types, that have additional properties to their corresponding * node interface. */ declare type Map = { operator: Operator; fieldReference: FieldReference; functionReference: FunctionReference; operation: OperationNode; functionCall: FunctionCallNode; argumentList: ArgumentListNode; modifier: ModifierNode; enclosedExpression: EnclosedExpressionNode; group: GroupNode; }; declare type ExtendedMap = { [T in GroupType | ExtendedNodeType | "operator"]: Map[T]; }; declare type TokenMap = { [T in Exclude<TokenTypeName, keyof Map>]: TokenNode<T>; }; /** * Map of all node types to their corresponding node interface. */ export interface NodeMap extends ExtendedMap, TokenMap { } export {};