@qualifyze/airtable-formulator
Version:
Airtable Formula Manipulator
16 lines (15 loc) • 800 B
TypeScript
import { TokenTypeName } from "../../tokenize";
import { GroupType } from "./group";
export declare type ExtendedNodeType = "fieldReference" | "functionReference";
export declare type NodeType = TokenTypeName | GroupType | ExtendedNodeType;
export interface Node<T extends NodeType = NodeType> {
readonly type: T;
readonly start: number;
readonly end: number;
readonly value: string;
}
export declare function isNode(node: unknown): node is Node;
export declare type TokenNode<T extends TokenTypeName = TokenTypeName> = Node<T>;
export declare function isTokenNode(node: Node): node is TokenNode;
export declare function createNodeErrorMessage(node: Node, message: string, type?: string): string;
export declare type GetNodeType<T extends Node> = T extends Node<infer U> ? U : never;