@goatlab/fluent
Version:
Readable query Interface & API generator for TS and Node
18 lines (17 loc) • 1.15 kB
TypeScript
import { FindByIdFilter, FluentQuery, QueryOutput } from './types';
export interface FluentConnectorInterface<ModelDTO, InputDTO, OutputDTO> {
insert(data: InputDTO): Promise<OutputDTO>;
insertMany(data: InputDTO[]): Promise<OutputDTO[]>;
findById<T extends FindByIdFilter<ModelDTO>>(id: string, q?: T): Promise<QueryOutput<T, ModelDTO> | null>;
findByIds<T extends FindByIdFilter<ModelDTO>>(ids: string[], q?: T): Promise<QueryOutput<T, ModelDTO>[]>;
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>>;
updateById(id: string, data: InputDTO): Promise<OutputDTO>;
replaceById(id: string, data: InputDTO): Promise<OutputDTO>;
deleteById(id: string): Promise<string>;
loadFirst(query?: FluentQuery<ModelDTO>): any;
loadById(id: string): any;
raw(): any;
}