UNPKG

@sqb/builder

Version:

Extensible multi-dialect SQL query builder written with TypeScript

112 lines (111 loc) 3.81 kB
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); }