UNPKG

@goatlab/fluent

Version:

Readable query Interface & API generator for TS and Node

44 lines (43 loc) 2.42 kB
import { Collection } from '@goatlab/js-utils'; import { FindByIdFilter, FluentHasManyParams, FluentBelongsToParams, FluentBelongsToManyParams, FluentQuery, Primitives, QueryFieldSelector, QueryOutput, AnyObject } from './types'; export declare abstract class BaseConnector<ModelDTO, InputDTO, OutputDTO> { protected outputKeys: string[]; protected relatedQuery?: { entity: new () => ModelDTO; query?: FluentQuery<ModelDTO>; repository?: any; key?: string; pivot?: any; }; protected chunk: null; protected pullSize: null; protected paginator: undefined; protected rawQuery: undefined; protected modelRelations: any; isMongoDB: boolean; constructor(); insertMany(data: InputDTO[]): Promise<OutputDTO[]>; updateById(id: string, data: InputDTO): Promise<OutputDTO>; findMany<T extends FluentQuery<ModelDTO>>(query?: T): Promise<QueryOutput<T, ModelDTO>[]>; findFirst<T extends FluentQuery<ModelDTO>>(query?: T): Promise<QueryOutput<T, ModelDTO> | null>; requireById(id: string, q?: FindByIdFilter<ModelDTO>): Promise<QueryOutput<FindByIdFilter<ModelDTO>, ModelDTO>>; requireFirst<T extends FluentQuery<ModelDTO>>(query?: T): Promise<QueryOutput<T, ModelDTO>>; findByIds<T extends FindByIdFilter<ModelDTO>>(ids: string[], q?: T): Promise<QueryOutput<T, ModelDTO>[]>; findById<T extends FindByIdFilter<ModelDTO>>(id: string, q?: T): Promise<QueryOutput<T, ModelDTO> | null>; collect(query: FluentQuery<ModelDTO>): Promise<Collection<OutputDTO>>; pluck(path: QueryFieldSelector<ModelDTO>, query?: FluentQuery<ModelDTO>): Promise<Primitives[]>; protected setRelatedQuery(r: { entity: new () => ModelDTO; query?: FluentQuery<ModelDTO>; repository?: any; key?: string; }): void; associate(data: InputDTO | OutputDTO): Promise<OutputDTO[]>; attach(id: string, pivot?: AnyObject): Promise<any[]>; protected hasMany<T extends FluentHasManyParams<T>>(r: T): InstanceType<T['repository']>; protected belongsTo<T extends FluentBelongsToParams<T>>(r: T): InstanceType<T['repository']>; protected hasOne(): void; protected belongsToMany<T extends FluentBelongsToManyParams<T>>(r: T): InstanceType<T['repository']>; protected hasManyThrough(): void; protected jsApplySelect(select: FluentQuery<ModelDTO>['select'], data: ModelDTO[]): ModelDTO[]; }