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.

39 lines (38 loc) 2.09 kB
import * as ast from "./astsql"; import { QueryVisitor, QueryContext, ContextBuilder } from "./queryVisitor"; export declare class CompilationContext implements QueryContext { currentNode: ast.SqlAstNode; parentNode?: ast.SqlAstNode; queryString: string; constructor(currentNode: ast.SqlAstNode); } export interface CompileMethod<TNode extends ast.SqlAstNode = ast.SqlAstNode> { (context: CompilationContext, node: TNode): CompilationContext; } export declare abstract class QueryCompiler extends QueryVisitor<CompilationContext> { dialect: ast.SqlDialect; delimiter: string; constructor(dialect: ast.SqlDialect, query: ast.SqlRoot, contextBuilder?: ContextBuilder); compile(): string; protected visitSqlRoot: CompileMethod<ast.SqlRoot>; protected visitQueryExpression: CompileMethod<ast.QueryExpression>; protected visitConstant: CompileMethod<ast.Constant>; protected visitFromClause: CompileMethod<ast.FromClause>; protected visitTableSource: CompileMethod<ast.TableSource>; protected visitJoinClause: CompileMethod<ast.JoinClause>; protected visitTableSpec: CompileMethod<ast.TableSpec>; protected visitGroupByClause: CompileMethod<ast.GroupByClause>; protected visitAliasedTerm: CompileMethod<ast.AliasedTerm<ast.SqlAstNode>>; protected visitSimpleFunctionCall: CompileMethod<ast.SimpleFunctionCall>; protected visitBinaryPredicate: CompileMethod<ast.BinaryPredicate>; protected visitLikePredicate: CompileMethod<ast.LikePredicate>; protected visitColumnName: CompileMethod<ast.ColumnName>; protected visitWhereClause: CompileMethod<ast.WhereClause>; protected visitOrderByClause: CompileMethod<ast.OrderByClause>; protected visitOrderByExpression: CompileMethod<ast.OrderByExpression>; protected visitLimitClause: CompileMethod<ast.LimitClause>; protected visitBinaryExpression: CompileMethod<ast.BinaryExpression<ast.BinaryOperator>>; } export declare class MySQLQueryCompiler extends QueryCompiler { constructor(query: ast.SqlRoot); }