UNPKG

nano-queries

Version:

Simple and powerful database-agnostic query builder (SQL & NoSQL)

36 lines (35 loc) 1.69 kB
import { SQLCompiler } from '../compilers/SQLCompiler'; import { PreparedValue } from '../core/PreparedValue'; import { Query } from '../core/Query'; import { QueryBuilder } from '../QueryBuilder'; import { PrimitiveValue, QueryBindings, RawQueryParameter } from '../types'; import { ConditionClause } from './ConditionClause'; import { GroupExpression } from './GroupExpression'; import { LimitClause } from './LimitClause'; import { SelectStatement, SelectStatementOptions } from './SelectStatement'; import { SetExpression } from './SetExpression'; import { WhereClause } from './WhereClause'; export declare class ConfigurableSQLBuilder { private readonly compiler; constructor(compiler: SQLCompiler); raw: (...segments: RawQueryParameter[]) => QueryBuilder; line: (...segments: RawQueryParameter[]) => QueryBuilder; group: (...segments: RawQueryParameter[]) => GroupExpression; set: (segments: RawQueryParameter[]) => SetExpression; value: (value: QueryBindings) => PreparedValue; values: (values: Array<QueryBindings> | Record<string, QueryBindings>) => SetExpression; where: (...segments: RawQueryParameter[]) => WhereClause; condition: (...segments: RawQueryParameter[]) => ConditionClause; limit: (limit?: number) => LimitClause; offset: (offset?: number) => LimitClause; select: (...params: SelectStatementOptions) => SelectStatement; /** * Compile query to SQL string and bindings */ toSQL: (query: Query) => { sql: string; bindings: QueryBindings[]; }; private readonly templateStringBuilder; sql: (strings: TemplateStringsArray, ...params: Array<PrimitiveValue | Query>) => Query; }