UNPKG

slim-ef

Version:

An implementation of basic entity framework functionnalities in typescript

59 lines (58 loc) 3.47 kB
import { ISpecification } from '../specification/specification.interface'; import { ExpressionResult, SlimExpressionFunction } from 'slim-exp'; import { IDbContext, IUnitOfWork } from '../uow'; import { EntityBase, IDbSet, Includable, IQueryable, IQueryableSelectionResult } from './interfaces'; import { DeepPartial } from 'typeorm'; import { IInternalDbContext } from '../uow/_internal.interface'; export declare const UnderlyingType: unique symbol; export declare class DbSet<T extends EntityBase, R extends T | T[] = T, P = T, E = T | DeepPartial<T>> implements IDbSet<T, R, P, E> { context: (IDbContext | IUnitOfWork) & IInternalDbContext; private _queryTypeToExecute; private _baseSpec; private _lastInclude; private _currentSkip; private _currentTake; private _ignoreFilters; private _underlyingType; private _onGoingPromise; constructor(context: IDbContext | IUnitOfWork); private get [UnderlyingType](); private set [UnderlyingType](value); add(...entities: E[]): Promise<void> | void; update(...entities: E[]): Promise<void> | void; unTrack(...entities: E[]): Promise<void> | void; remove(...entities: E[]): Promise<void> | void; find(id: any): Promise<T>; exists(id: any): Promise<boolean>; loadRelatedData(entity: T): Promise<T>; firstOrDefault(): Promise<T>; firstOrDefault<C extends object>(predicate: SlimExpressionFunction<T, boolean, C>, context: C): Promise<T>; firstOrDefault<C extends object>(predicate?: SlimExpressionFunction<T, boolean, C>): Promise<T>; first(): Promise<T>; first<C extends object>(predicate: SlimExpressionFunction<T, boolean, C>, context: C): Promise<T>; first<C extends object>(func?: SlimExpressionFunction<T, boolean, C>): Promise<T>; include<S extends object>(navigationPropertyPath: SlimExpressionFunction<T, Includable<S>>): IQueryable<T, R, S>; thenInclude<S extends object>(navigationPropertyPath: SlimExpressionFunction<P, Includable<S>>): IQueryable<T, R, S>; where<C extends object>(predicate: SlimExpressionFunction<T, boolean, C>, context?: C): IQueryable<T, R, P>; take(count: number): IQueryable<T, R, P>; skip(count: number): IQueryable<T, R, P>; select<V extends object>(selector: SlimExpressionFunction<T, V>): IQueryableSelectionResult<V, R>; private _getIncludePaths; private _extractKeyFields; count<C extends object>(predicate?: SlimExpressionFunction<T, boolean, C>): Promise<number>; sum(selector: SlimExpressionFunction<T, number>): Promise<number>; average(selector: SlimExpressionFunction<T, number>): Promise<number>; max<RT extends ExpressionResult>(selector: SlimExpressionFunction<T, RT>): Promise<RT>; min<RT extends ExpressionResult>(selector: SlimExpressionFunction<T, RT>): Promise<RT>; orderBy(keySelector: SlimExpressionFunction<T>): any; thenOrderBy(keySelector: SlimExpressionFunction<T>): IQueryable<T, R, P>; groupBy(keySelector: SlimExpressionFunction<T>): IQueryable<T, R, P>; thenGroupBy(keySelector: SlimExpressionFunction<T>): IQueryable<T, R, P>; orderByDescending(keySelector: SlimExpressionFunction<T>): IQueryable<T, R, P>; asSpecification(): ISpecification<T>; ignoreQueryFilters(): IQueryable<T, R, P>; distinct(): this; fromSpecification(spec: ISpecification<T>): IQueryable<T, T>; toList(): Promise<T[]>; private execute; }