@sqb/builder
Version:
Extensible multi-dialect SQL query builder written with TypeScript
112 lines (111 loc) • 3.81 kB
JavaScript
import { JoinType } from './enums.js';
import { DeleteQuery } from './query/delete-query.js';
import { InsertQuery } from './query/insert-query.js';
import { SelectQuery } from './query/select-query.js';
import { UnionQuery } from './query/union-query.js';
import { UpdateQuery } from './query/update-query.js';
import { CaseStatement } from './sql-objects/case-statement.js';
import { CoalesceStatement } from './sql-objects/coalesce-statement.js';
import { CountStatement } from './sql-objects/count-statement.js';
import { FieldExpression } from './sql-objects/field-expression.js';
import { JoinStatement } from './sql-objects/join-statement.js';
import { LowerStatement } from './sql-objects/lower-statement.js';
import { MaxStatement } from './sql-objects/max-statement.js';
import { MinStatement } from './sql-objects/min-statement.js';
import { ParamExpression } from './sql-objects/param-expression.js';
import { RawStatement } from './sql-objects/raw-statement.js';
import { SequenceGetterStatement } from './sql-objects/sequence-getter-statement.js';
import { StringAGGStatement } from './sql-objects/string-agg-statement.js';
import { UpperStatement } from './sql-objects/upper-statement.js';
export function Raw(text) {
return new RawStatement(text);
}
export function Select(...column) {
return new SelectQuery(...column);
}
export function Insert(tableName, input) {
return new InsertQuery(tableName, input);
}
export function Update(tableName, input) {
return new UpdateQuery(tableName, input);
}
export function Delete(tableName) {
return new DeleteQuery(tableName);
}
export function Union(...queries) {
return new UnionQuery(queries);
}
export function UnionAll(...queries) {
return new UnionQuery(queries, 'all');
}
export function Join(table) {
return new JoinStatement(JoinType.INNER, table);
}
export function InnerJoin(table) {
return new JoinStatement(JoinType.INNER, table);
}
export function LeftJoin(table) {
return new JoinStatement(JoinType.LEFT, table);
}
export function LeftOuterJoin(table) {
return new JoinStatement(JoinType.LEFT_OUTER, table);
}
export function RightJoin(table) {
return new JoinStatement(JoinType.RIGHT, table);
}
export function RightOuterJoin(table) {
return new JoinStatement(JoinType.RIGHT_OUTER, table);
}
export function OuterJoin(table) {
return new JoinStatement(JoinType.OUTER, table);
}
export function FullOuterJoin(table) {
return new JoinStatement(JoinType.FULL_OUTER, table);
}
export function CrossJoin(table) {
return new JoinStatement(JoinType.CROSS, table);
}
export function Case() {
return new CaseStatement();
}
export function Coalesce(...expressions) {
return new CoalesceStatement(...expressions);
}
export function Lower(expression) {
return new LowerStatement(expression);
}
export function Upper(expression) {
return new UpperStatement(expression);
}
export function Min(expression) {
return new MinStatement(expression);
}
export function Max(expression) {
return new MaxStatement(expression);
}
export function StringAGG(field) {
return new StringAGGStatement(field);
}
export function Count() {
return new CountStatement();
}
export function SequenceNext(expression) {
return new SequenceGetterStatement(expression, true);
}
export function SequenceCurr(expression) {
return new SequenceGetterStatement(expression, false);
}
export function Param(arg0, arg1, arg2) {
if (typeof arg0 === 'object')
return new ParamExpression(arg0);
return new ParamExpression({
name: arg0,
dataType: arg1,
isArray: arg2,
});
}
export function Field(arg0, arg1, arg2) {
if (typeof arg0 === 'object')
return new FieldExpression(arg0);
return new FieldExpression(arg0, arg1, arg2);
}