UNPKG

rawsql-ts

Version:

[beta]High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.

41 lines (40 loc) 1.46 kB
import { Lexeme } from "../models/Lexeme"; import { SelectQuery } from "../models/SelectQuery"; export interface ParseAnalysisResult { success: boolean; query?: SelectQuery; error?: string; errorPosition?: number; remainingTokens?: string[]; } export declare class SelectQueryParser { static parse(query: string): SelectQuery; /** * Analyzes SQL string for parsing without throwing errors. * Returns a result object containing the parsed query on success, * or error information if parsing fails. * * @param query SQL string to analyze * @returns Analysis result containing query, error information, and success status */ /** * Calculate character position from token index by finding token in original query */ private static calculateCharacterPosition; static analyze(query: string): ParseAnalysisResult; /** * Asynchronously parse SQL string to AST. * This method wraps the synchronous parse logic in a Promise for future extensibility. * @param query SQL string to parse * @returns Promise<SelectQuery> */ static parseAsync(query: string): Promise<SelectQuery>; private static unionCommandSet; private static selectCommandSet; static parseFromLexeme(lexemes: Lexeme[], index: number): { value: SelectQuery; newIndex: number; }; private static parseSimpleSelectQuery; private static parseValuesQuery; }