UNPKG

@cheetah.js/orm

Version:
82 lines (81 loc) 2.76 kB
import { AutoPath, FilterQuery, QueryOrderMap, Statement, ValueOrInstance } from './driver/driver.interface'; export declare class SqlBuilder<T> { private readonly driver; private entityStorage; private statements; private entity; private model; private aliases; private lastKeyNotOperator; private logger; private updatedColumns; private originalColumns; constructor(model: new () => T); select(columns?: AutoPath<T, never, '*'>[]): SqlBuilder<T>; setStrategy(strategy?: 'joined' | 'select'): SqlBuilder<T>; setInstance(instance: T): SqlBuilder<T>; insert(values: Partial<{ [K in keyof T]: ValueOrInstance<T[K]>; }>): SqlBuilder<T>; update(values: Partial<{ [K in keyof T]: ValueOrInstance<T[K]>; }>): SqlBuilder<T>; where(where: FilterQuery<T>): SqlBuilder<T>; orderBy(orderBy: (QueryOrderMap<T> & { 0?: never; }) | QueryOrderMap<T>[]): SqlBuilder<T>; limit(limit: number | undefined): SqlBuilder<T>; offset(offset: number | undefined): SqlBuilder<T>; load(load: string[]): SqlBuilder<T>; private addJoinForRelationshipPath; private getPrimaryKeyColumnName; execute(): Promise<{ query: any; startTime: number; sql: string; }>; private beforeHooks; private afterHooks; executeAndReturnFirst(): Promise<T | undefined>; executeAndReturnFirstOrFail(): Promise<T>; executeAndReturnAll(): Promise<T[]>; private handleSelectJoin; getPathForSelectJoin(selectJoin: Statement<any>): string[] | null; private setValueByPath; private getPathForSelectJoinRecursive; private findIdRecursively; private generateColumns; private extractAliasForColumns; private filterInvalidColumns; private includeUpdatedColumns; private logExecution; startTransaction(): Promise<void>; commit(): Promise<void>; rollback(): Promise<void>; inTransaction<T>(callback: (builder: SqlBuilder<T>) => Promise<T>): Promise<T>; private objectToStringMap; private discoverColumnAlias; private getTableName; private addSimpleConditionToSql; private addInConditionToSql; private addLogicalOperatorToSql; private conditionToSql; private t; private applyJoin; private getFkKey; private getEntity; private transformToModel; /** * Retrieves an alias for a given table name. * * @param {string} tableName - The name of the table. * @private * @returns {string} - The alias for the table name. */ private getAlias; private getColumnsEntity; private withDefaultValues; private withUpdatedValues; callHook(type: string, model?: any): void; private reflectToValues; }