slim-ef
Version:
An implementation of basic entity framework functionnalities in typescript
36 lines (35 loc) • 1.44 kB
TypeScript
import { ISpecification, IQuerySpecificationEvaluator, QueryType } from './specification.interface';
import { SelectQueryBuilder } from 'typeorm';
import { SlimExpressionFunction } from 'slim-exp';
export declare class SQLQuerySpecificationEvaluator<T extends object> implements IQuerySpecificationEvaluator<T> {
private readonly initialQuery;
private readonly spec;
private registerdAliases;
private _query;
private _queryReady;
private _discriminator;
private _selectBuilder;
constructor(initialQuery: (alias: string) => SelectQueryBuilder<T>, spec: ISpecification<T>);
_applyLeftJoin(query: SelectQueryBuilder<T>, intialAlias: string, exp: SlimExpressionFunction<T> | string): {
propertyName: string;
entityAlias: string;
};
private _applyJoin;
private _getFieldNameAndAlias;
private _getPropertyAlias;
private _getFieldFromRegisteredAlias;
private _isOrBinding;
private _generateQuery;
private _chunkDownToQuery;
private _applyRecursively;
private _getQuerySequence;
private _buildQueryFromExpression;
private _polyfillDate;
private _handleFunctionInvokation;
private _getUniqueParamName;
getParams(): any;
getQuery<R extends object>(): Promise<string>;
private _buildSelect;
private _applyFunction;
executeQuery<R extends object = T, Q = R[]>(type: QueryType): Promise<Q>;
}