ts-sql
Version:
An SQL builder in Typescript. This project is heavily inspired by [XQL](/extjs/xql). A big shout out to @exjs and @kobalicek for this amazing project.
22 lines (21 loc) • 866 B
TypeScript
import * as ast from "./astsql";
export interface QueryContext {
currentNode: ast.SqlAstNode;
parentNode?: ast.SqlAstNode;
}
export interface ContextBuilder {
new (node: ast.SqlAstNode): QueryContext;
}
export declare abstract class QueryVisitor<TContext extends QueryContext = QueryContext> {
dialect: ast.SqlDialect;
query: ast.SqlRoot;
protected visitStarted: boolean;
private _contextBuilder;
constructor(dialect: ast.SqlDialect, query: ast.SqlRoot, contextBuilder?: ContextBuilder);
protected visit(): TContext;
protected visitNode(context: TContext, node: ast.SqlAstNode): TContext;
protected visitGenericNode(context: TContext, node: ast.SqlAstNode): TContext;
protected buildContext(): TContext;
protected shouldVisitNode(node: any): boolean;
private doVisitNode(context, node);
}