UNPKG

@cheetah.js/orm

Version:
91 lines (90 loc) 2.94 kB
import { AutoPath, FilterQuery, QueryOrderMap, ValueOrInstance } from './driver/driver.interface'; export declare class SqlBuilder<T> { private readonly driver; private entityStorage; private statements; private entity; private model; private aliases; private logger; private updatedColumns; private originalColumns; private conditionBuilder; private modelTransformer; private columnManager; private joinManager; 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>; delete(): 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>; count(): SqlBuilder<T>; 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 hasOneToManyJoinedJoin; private processOneToManyJoinedResult; private attachOneToManyRelations; private removeDuplicatesByPrimaryKey; private getPrimaryKeyName; private getPrimaryKeyNameForEntity; executeCount(): Promise<number>; private logExecution; inTransaction<T>(callback: (builder: SqlBuilder<T>) => Promise<T>): Promise<T>; private objectToStringMap; private mapObjectKey; private isNestedObject; private buildColumnPath; private splitPath; private resolvePathEntity; private nextEntity; private resolveColumn; private joinSegments; private getTableName; private t; private getEntity; /** * 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 generateUniqueAlias; private withDefaultValues; private applyDefaultProperties; private setDefaultValue; private applyOnInsertProperties; private applyOnInsert; private withUpdatedValues; private applyOnUpdate; callHook(type: string, model?: any): void; private executeHook; private reflectToValues; private shouldSkipKey; private reflectKey; private reflectProperty; private reflectRelation; }