UNPKG

@rsql/ast

Version:

RSQL AST definitions and functions

165 lines (160 loc) 5.08 kB
// Generated by dts-bundle v0.7.3 declare const EQ: "=="; declare const NEQ: "!="; declare const LE: "<="; declare const GE: ">="; declare const LT: "<"; declare const GT: ">"; declare const IN: "=in="; declare const OUT: "=out="; declare const LE_VERBOSE: "=le="; declare const GE_VERBOSE: "=ge="; declare const LT_VERBOSE: "=lt="; declare const GT_VERBOSE: "=gt="; declare type CustomComparisonOperator = string; declare const CanonicalComparisonOperators: ("==" | "!=" | "<=" | ">=" | "<" | ">" | "=in=" | "=out=")[]; declare type CanonicalComparisonOperator = typeof CanonicalComparisonOperators[number]; declare const VerboseComparisonOperators: ("=le=" | "=ge=" | "=lt=" | "=gt=")[]; declare type VerboseComparisonOperator = typeof VerboseComparisonOperators[number]; declare const ComparisonOperators: ( | "==" | "!=" | "<=" | ">=" | "<" | ">" | "=in=" | "=out=" | "=le=" | "=ge=" | "=lt=" | "=gt=" )[]; declare type ComparisonOperator = typeof ComparisonOperators[number] | CustomComparisonOperator; declare function isComparisonOperator( candidate: string, operator?: ComparisonOperator ): candidate is ComparisonOperator; export { EQ, NEQ, LE, GE, LT, GT, IN, OUT, LE_VERBOSE, GE_VERBOSE, LT_VERBOSE, GT_VERBOSE, ComparisonOperators, CanonicalComparisonOperators, VerboseComparisonOperators, isComparisonOperator, ComparisonOperator, CanonicalComparisonOperator, VerboseComparisonOperator, }; declare const AND: ";"; declare const OR: ","; declare const AND_VERBOSE: "and"; declare const OR_VERBOSE: "or"; declare const CanonicalLogicOperators: (";" | ",")[]; declare type CanonicalLogicOperator = typeof CanonicalLogicOperators[number]; declare const VerboseLogicOperators: ("and" | "or")[]; declare type VerboseLogicOperator = typeof VerboseLogicOperators[number]; declare const LogicOperators: (";" | "," | "and" | "or")[]; declare type LogicOperator = typeof LogicOperators[number]; declare function isLogicOperator(candidate: string, operator?: LogicOperator): candidate is LogicOperator; export { AND, OR, AND_VERBOSE, OR_VERBOSE, CanonicalLogicOperators, VerboseLogicOperators, LogicOperators, isLogicOperator, CanonicalLogicOperator, VerboseLogicOperator, LogicOperator, }; declare const ReservedChars: readonly ['"', "'", "(", ")", ";", ",", "=", "!", "~", "<", ">", " ", "\n", "\t", "\r"]; declare type ReservedChar = typeof ReservedChars[number]; export { ReservedChars, ReservedChar }; declare const NodeType: { readonly SELECTOR: "SELECTOR"; readonly VALUE: "VALUE"; readonly COMPARISON: "COMPARISON"; readonly LOGIC: "LOGIC"; }; interface Node<TType = string> { readonly type: TType; } interface SelectorNode extends Node<typeof NodeType.SELECTOR> { readonly selector: string; } interface ValueNode extends Node<typeof NodeType.VALUE> { readonly value: string | string[]; } interface BinaryNode< TType extends string = string, TLeft extends Node = Node, TOperator extends string = string, TRight extends Node = Node > extends Node<TType> { readonly left: TLeft; readonly operator: TOperator; readonly right: TRight; } declare type ComparisonNode = BinaryNode<typeof NodeType.COMPARISON, SelectorNode, ComparisonOperator, ValueNode>; declare type LogicNode = BinaryNode<typeof NodeType.LOGIC, ExpressionNode, LogicOperator, ExpressionNode>; declare type ExpressionNode = ComparisonNode | LogicNode; declare function createSelectorNode(selector: string, skipChecks?: boolean): SelectorNode; declare function createValueNode(value: string | string[], skipChecks?: boolean): ValueNode; declare function createComparisonNode( selector: SelectorNode, operator: ComparisonOperator, value: ValueNode, skipChecks?: boolean ): ComparisonNode; declare function createLogicNode( left: ExpressionNode, operator: LogicOperator, right: ExpressionNode, skipChecks?: boolean ): LogicNode; declare function isNode(candidate: unknown): candidate is Node; declare function isSelectorNode(candidate: unknown): candidate is SelectorNode; declare function isValueNode(candidate: unknown): candidate is ValueNode; declare function isComparisonNode(candidate: unknown, operator?: ComparisonOperator): candidate is ComparisonNode; declare function isLogicNode(candidate: unknown, operator?: LogicOperator): candidate is LogicNode; declare function isExpressionNode(candidate: unknown): candidate is ExpressionNode; declare function getSelector(comparison: ComparisonNode): string; declare function getValue(comparison: ComparisonNode): string | string[]; declare function getSingleValue(comparison: ComparisonNode): string; declare function getMultiValue(comparison: ComparisonNode): string[]; export { createSelectorNode, createValueNode, createComparisonNode, createLogicNode, isNode, isSelectorNode, isValueNode, isComparisonNode, isLogicNode, isExpressionNode, getSelector, getValue, getSingleValue, getMultiValue, Node, SelectorNode, ValueNode, BinaryNode, ComparisonNode, LogicNode, ExpressionNode, };