@goatlab/fluent
Version:
Readable query Interface & API generator for TS and Node
44 lines (43 loc) • 2.42 kB
TypeScript
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[];
}