UNPKG

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
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; }