@cheetah.js/orm
Version:
A simple ORM for Cheetah.js
40 lines (39 loc) • 1.8 kB
TypeScript
import { Statement, Relationship, FilterQuery, DriverInterface } from '../driver/driver.interface';
import { EntityStorage, Options } from '../domain/entities';
import { SqlConditionBuilder } from './sql-condition-builder';
import { SqlColumnManager } from './sql-column-manager';
import { ModelTransformer } from './model-transformer';
import { LoggerService } from '@cheetah.js/core';
export declare class SqlJoinManager<T> {
private entityStorage;
private statements;
private entity;
private model;
private driver;
private logger;
private conditionBuilder;
private columnManager;
private modelTransformer;
private getOriginalColumnsCallback;
private getAliasCallback;
constructor(entityStorage: EntityStorage, statements: Statement<T>, entity: Options, model: new () => T, driver: DriverInterface, logger: LoggerService, conditionBuilder: SqlConditionBuilder<T>, columnManager: SqlColumnManager, modelTransformer: ModelTransformer, getOriginalColumnsCallback: () => string[], getAliasCallback: (tableName: string) => string);
addJoinForRelationshipPath(relationshipPath: string): void;
applyJoin(relationShip: Relationship<any>, value: FilterQuery<any>, alias: string): string;
handleSelectJoin(entities: any, models: any): Promise<void>;
getPathForSelectJoin(selectJoin: Statement<any>): string[] | null;
private buildJoinOn;
private addJoinedJoin;
private addSelectJoin;
private processSelectJoin;
private getIds;
private updateJoinWhere;
private updateJoinColumns;
private attachJoinResults;
private setValueByPath;
private getPathForSelectJoinRecursive;
private findIdRecursively;
private getFkKey;
private getTableName;
private getPrimaryKey;
private formatValue;
}