UNPKG

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
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); }