slim-ef
Version:
An implementation of basic entity framework functionnalities in typescript
57 lines (56 loc) • 2.81 kB
TypeScript
import { ExpressionResult, SlimExpressionFunction } from 'slim-exp';
import { ISpecification, FieldsSelector, CriteriaExpression, FunctionQueryType } from './specification.interface';
export declare class BaseSpecification<T extends object> implements ISpecification<T> {
private _includes;
private _distinct;
private _chainedIncludes;
private _criterias;
private _orderBy;
private _groupBy;
private _orderByDescending;
private _thenOrderBy;
private _thenGroupBy;
private _take;
private _skip;
private _isPagingEnabled;
private _selector;
private _func;
private _initializeThenInclude;
getIncludePaths(): string[];
getIncludes(): SlimExpressionFunction<T>[];
getDistinct(): boolean;
getFunction(): {
type: FunctionQueryType;
func: SlimExpressionFunction<T>;
};
getChainedIncludes(): {
initial: SlimExpressionFunction<T>;
chain: SlimExpressionFunction<any, any>[];
}[];
getCriterias(): CriteriaExpression<T>[];
getOrderBy(): SlimExpressionFunction<T>;
getGroupBy(): SlimExpressionFunction<T>;
getOrderByDescending(): SlimExpressionFunction<T>;
getThenOrderBy(): SlimExpressionFunction<T>[];
getThenGroupBy(): SlimExpressionFunction<T>[];
getTake(): number;
getSkip(): number;
getIsPagingEnabled(): boolean;
getSelector(): FieldsSelector<T>;
applyPaging(skip: number, take: number): void;
addInclude(include: SlimExpressionFunction<T>): void;
applyDistinct(distinct?: boolean): void;
addChainedInclude<S extends object>(include: SlimExpressionFunction<T, S>, include2: SlimExpressionFunction<S>): any;
addChainedInclude<S extends object, R extends object>(include: SlimExpressionFunction<T, S>, include2: SlimExpressionFunction<S, R>, include3: SlimExpressionFunction<R>): any;
addChainedInclude<S extends object, R extends object, P extends object>(include: SlimExpressionFunction<T, S>, include2: SlimExpressionFunction<S, R>, include3: SlimExpressionFunction<R, P>, include4: SlimExpressionFunction<P>): any;
addCriteria<C extends object, S extends ExpressionResult>(func: SlimExpressionFunction<T, S, C>, context?: C | null): void;
applySelector(selector: FieldsSelector<T>): void;
applyOrderBy(orderBy: SlimExpressionFunction<T>): void;
applyGroupBy(groupBy: SlimExpressionFunction<T>): void;
applyFunction(type: FunctionQueryType, func: SlimExpressionFunction<T>): void;
applyThenOrderBy(thenOrderBy: SlimExpressionFunction<T>): void;
applyThenGroupBy(thenBy: SlimExpressionFunction<T>): void;
applyOrderByDescending(orderBy: SlimExpressionFunction<T>): void;
extend(spec: ISpecification<T>): void;
clearSpecs(): void;
}