rawsql-ts
Version:
High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.
42 lines (41 loc) • 2.27 kB
TypeScript
import type { SelectQuery } from '../models/SelectQuery';
import type { InsertQuery } from '../models/InsertQuery';
import type { UpdateQuery } from '../models/UpdateQuery';
import type { DeleteQuery } from '../models/DeleteQuery';
import type { CreateTableQuery } from '../models/CreateTableQuery';
import type { MergeQuery } from '../models/MergeQuery';
import type { DropTableStatement, DropIndexStatement, CreateIndexStatement, AlterTableStatement, DropConstraintStatement, AnalyzeStatement, ExplainStatement, CreateSequenceStatement, AlterSequenceStatement } from '../models/DDLStatements';
export type ParsedStatement = SelectQuery | InsertQuery | UpdateQuery | DeleteQuery | CreateTableQuery | MergeQuery | DropTableStatement | DropIndexStatement | CreateIndexStatement | CreateSequenceStatement | AlterTableStatement | AlterSequenceStatement | DropConstraintStatement | AnalyzeStatement | ExplainStatement;
export interface SqlParserOptions {
mode?: 'single' | 'multiple';
skipEmptyStatements?: boolean;
}
export interface SqlParserManyOptions {
skipEmptyStatements?: boolean;
}
/**
* Canonical entry point for SQL parsing.
* Delegates to dedicated parsers for SELECT, INSERT, UPDATE, and DELETE statements, and is designed to embrace additional statement types next.
*/
export declare class SqlParser {
static parse(sql: string, options?: SqlParserOptions): ParsedStatement;
static parseMany(sql: string, options?: SqlParserManyOptions): ParsedStatement[];
private static dispatchParse;
private static parseSelectStatement;
private static parseExplainStatement;
private static parseInsertStatement;
private static parseUpdateStatement;
private static parseDeleteStatement;
private static parseCreateTableStatement;
private static parseDropTableStatement;
private static parseDropIndexStatement;
private static parseCreateIndexStatement;
private static parseCreateSequenceStatement;
private static parseAlterSequenceStatement;
private static parseAlterTableStatement;
private static parseDropConstraintStatement;
private static parseAnalyzeStatement;
private static parseMergeStatement;
private static getCommandAfterWith;
private static consumeNextStatement;
}