@cheetah.js/orm
Version:
A simple ORM for Cheetah.js
82 lines (81 loc) • 2.76 kB
TypeScript
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;
}