nano-queries
Version:
Simple and powerful database-agnostic query builder (SQL & NoSQL)
36 lines (35 loc) • 1.69 kB
TypeScript
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;
}