rawsql-ts
Version:
[beta]High-performance SQL parser and AST analyzer written in TypeScript. Provides fast parsing and advanced transformation capabilities.
39 lines (38 loc) • 1.95 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 } from '../models/DDLStatements';
export type ParsedStatement = SelectQuery | InsertQuery | UpdateQuery | DeleteQuery | CreateTableQuery | MergeQuery | DropTableStatement | DropIndexStatement | CreateIndexStatement | AlterTableStatement | DropConstraintStatement;
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 parseInsertStatement;
private static parseUpdateStatement;
private static parseDeleteStatement;
private static parseCreateTableStatement;
private static parseDropTableStatement;
private static parseDropIndexStatement;
private static parseCreateIndexStatement;
private static parseAlterTableStatement;
private static parseDropConstraintStatement;
private static parseMergeStatement;
private static getCommandAfterWith;
private static cloneLexemeArray;
private static consumeNextStatement;
}