ts-sql-query
Version:
Type-safe SQL query builder like QueryDSL or JOOQ in Java or Linq in .Net for TypeScript with MariaDB, MySql, Oracle, PostgreSql, Sqlite and SqlServer support.
107 lines (106 loc) • 7.98 kB
TypeScript
import { JoinData, SqlBuilder, ToSql, UpdateData } from "../sqlBuilders/SqlBuilder";
import { HasAddWiths, HasIsValue, ITable, ITableOrView, IWithView, OuterJoinSource } from "../utils/ITableOrView";
import { AlwaysIfValueSource, AnyValueSource, IBooleanValueSource, IIfValueSource } from "../expressions/values";
import type { UpdateExpression, ExecutableUpdate, ExecutableUpdateExpression, DynamicExecutableUpdateExpression, UpdateExpressionAllowingNoWhere, NotExecutableUpdateExpression, CustomizableExecutableUpdate, UpdateCustomization, ComposableExecutableUpdate, ComposeExpression, ComposeExpressionDeletingInternalProperty, ComposeExpressionDeletingExternalProperty, ComposableCustomizableExecutableUpdate, ReturnableExecutableUpdate, ExecutableUpdateReturning, UpdateColumns, UpdateSetExpression, UpdateSetExpressionAllowingNoWhere, UpdateSetJoinExpression, DynamicOnExpression, OnExpression, UpdateExpressionWithoutJoin, UpdateFromExpression, UpdateSetJoinExpressionAllowingNoWhere, DynamicOnExpressionAllowingNoWhere, OnExpressionAllowingNoWhere, UpdateExpressionWithoutJoinAllowingNoWhere, UpdateFromExpressionAllowingNoWhere, ShapedUpdateSetExpression, ShapedUpdateSetExpressionAllowingNoWhere, ShapedExecutableUpdateExpression, ShapedNotExecutableUpdateExpression, ComposableCustomizableExecutableUpdateProjectableAsNullable } from "../expressions/update";
import type { int } from "ts-extended-types";
import { database, resultType, tableOrView, type } from "../utils/symbols";
import { ComposeSplitQueryBuilder } from "./ComposeSliptQueryBuilder";
import { Column } from "../utils/Column";
export declare class UpdateQueryBuilder extends ComposeSplitQueryBuilder implements HasAddWiths, ToSql, UpdateExpression<any, any>, UpdateExpressionAllowingNoWhere<any, any>, ExecutableUpdate<any>, CustomizableExecutableUpdate<any>, ExecutableUpdateExpression<any, any>, ShapedExecutableUpdateExpression<any, any, any>, NotExecutableUpdateExpression<any, any>, ShapedNotExecutableUpdateExpression<any, any, any>, DynamicExecutableUpdateExpression<any, any>, UpdateData, ComposableExecutableUpdate<any, any, any>, ComposeExpression<any, any, any, any, any, any>, ComposeExpressionDeletingInternalProperty<any, any, any, any, any, any>, ComposeExpressionDeletingExternalProperty<any, any, any, any, any, any>, ComposableCustomizableExecutableUpdate<any, any, any>, ReturnableExecutableUpdate<any, any>, ExecutableUpdateReturning<any, any, any>, UpdateSetExpression<any, any>, ShapedUpdateSetExpression<any, any, any>, UpdateSetExpressionAllowingNoWhere<any, any>, ShapedUpdateSetExpressionAllowingNoWhere<any, any, any>, UpdateSetJoinExpression<any, any>, DynamicOnExpression<any, any>, OnExpression<any, any>, UpdateExpressionWithoutJoin<any, any>, UpdateFromExpression<any, any>, UpdateSetJoinExpressionAllowingNoWhere<any, any>, DynamicOnExpressionAllowingNoWhere<any, any>, OnExpressionAllowingNoWhere<any, any>, UpdateExpressionWithoutJoinAllowingNoWhere<any, any>, UpdateFromExpressionAllowingNoWhere<any, any>, ComposableCustomizableExecutableUpdateProjectableAsNullable<any, any> {
[type]: any;
[database]: any;
[tableOrView]: any;
[resultType]: any;
__table: ITable<any>;
__shape?: {
[property: string]: Column | string;
};
__sets: {
[property: string]: any;
};
__where?: AlwaysIfValueSource<any, any>;
__allowNoWhere: boolean;
__withs: Array<IWithView<any>>;
__customization?: UpdateCustomization<any>;
__oldValues?: ITableOrView<any>;
__froms?: Array<ITableOrView<any>>;
__joins?: Array<JoinData>;
__oneColumn?: boolean;
__lastJoin?: JoinData;
__params: any[];
__query: string;
constructor(sqlBuilder: SqlBuilder, table: ITable<any>, allowNoWhere: boolean);
executeUpdate(min?: number, max?: number): Promise<int> & Promise<number>;
executeUpdateNoneOrOne(): Promise<any>;
executeUpdateOne(): Promise<any>;
executeUpdateMany(min?: number, max?: number): Promise<any>;
query(): string;
params(): any[];
__toSql(_sqlBuilder: SqlBuilder, params: any[]): string;
__toSqlForCondition(sqlBuilder: SqlBuilder, params: any[]): string;
shapedAs(shape: any): this;
extendShape(shape: any): this;
dynamicSet(columns?: any): this;
set(columns: any): this;
setIfValue(columns: any): this;
setIfSet(columns: any): this;
setIfSetIfValue(columns: any): this;
setIfNotSet(columns: any): this;
setIfNotSetIfValue(columns: any): this;
ignoreIfSet(...columns: any[]): this;
keepOnly(...columns: any[]): this;
setIfHasValue(columns: any): this;
setIfHasValueIfValue(columns: any): this;
setIfHasNoValue(columns: any): this;
setIfHasNoValueIfValue(columns: any): this;
ignoreIfHasValue(...columns: any[]): this;
ignoreIfHasNoValue(...columns: any[]): this;
ignoreAnySetWithNoValue(): this;
disallowIfSet(error: string | Error, ...columns: any[]): this;
disallowIfNotSet(error: string | Error, ...columns: any[]): this;
disallowIfValue(error: string | Error, ...columns: any[]): this;
disallowIfNoValue(error: string | Error, ...columns: any[]): this;
disallowAnyOtherSet(error: string | Error, ...columns: any[]): this;
setWhen(when: boolean, columns: any): this;
setIfValueWhen(when: boolean, columns: any): this;
setIfSetWhen(when: boolean, columns: any): this;
setIfSetIfValueWhen(when: boolean, columns: any): this;
setIfNotSetWhen(when: boolean, columns: any): this;
setIfNotSetIfValueWhen(when: boolean, columns: any): this;
ignoreIfSetWhen(when: boolean, ...columns: any[]): this;
keepOnlyWhen(when: boolean, ...columns: any[]): this;
setIfHasValueWhen(when: boolean, columns: any): this;
setIfHasValueIfValueWhen(when: boolean, columns: any): this;
setIfHasNoValueWhen(when: boolean, columns: any): this;
setIfHasNoValueIfValueWhen(when: boolean, columns: any): this;
ignoreIfHasValueWhen(when: boolean, ...columns: any[]): this;
ignoreIfHasNoValueWhen(when: boolean, ...columns: any[]): this;
ignoreAnySetWithNoValueWhen(when: boolean): this;
disallowIfSetWhen(when: boolean, error: string | Error, ...columns: any[]): this;
disallowIfNotSetWhen(when: boolean, error: string | Error, ...columns: any[]): this;
disallowIfValueWhen(when: boolean, error: string | Error, ...columns: any[]): this;
disallowIfNoValueWhen(when: boolean, error: string | Error, ...columns: any[]): this;
disallowAnyOtherSetWhen(when: boolean, error: string | Error, ...columns: any[]): this;
dynamicWhere(): this;
where(condition: IBooleanValueSource<any, any> | IIfValueSource<any, any>): this;
and(condition: IBooleanValueSource<any, any> | IIfValueSource<any, any>): this;
or(condition: IBooleanValueSource<any, any> | IIfValueSource<any, any>): this;
from(table: ITableOrView<any>): any;
join(table: ITableOrView<any>): any;
innerJoin(table: ITableOrView<any>): any;
leftJoin(source: OuterJoinSource<any, any>): any;
leftOuterJoin(source: OuterJoinSource<any, any>): any;
dynamicOn(): any;
on(condition: IBooleanValueSource<any, any> | IIfValueSource<any, any>): any;
__finishJoin(): void;
customizeQuery(customization: UpdateCustomization<any>): this;
returning(columns: UpdateColumns<any, any>): this;
projectingOptionalValuesAsNullable(): any;
returningOneColumn(column: AnyValueSource): this;
__addWiths(sqlBuilder: HasIsValue, withs: Array<IWithView<any>>): void;
__registerTableOrView(_sqlBuilder: HasIsValue, _requiredTablesOrViews: Set<ITableOrView<any>>): void;
__registerRequiredColumn(_sqlBuilder: HasIsValue, _requiredColumns: Set<Column>, _onlyForTablesOrViews: Set<ITableOrView<any>>): void;
__getOldValues(_sqlBuilder: HasIsValue): ITableOrView<any> | undefined;
__getValuesForInsert(_sqlBuilder: HasIsValue): ITableOrView<any> | undefined;
__isAllowed(sqlBuilder: HasIsValue): boolean;
}