13 lines
380 B
TypeScript
13 lines
380 B
TypeScript
export interface IQuery<TModel> {
|
|
filter: (model: TModel) => boolean;
|
|
skip: number;
|
|
limit: number;
|
|
sort: { key: (model: TModel) => any; option: "asc" | "desc" }[];
|
|
}
|
|
|
|
export interface IRepository<TModel> {
|
|
getBy(options: IQuery<TModel>): Promise<TModel[]>;
|
|
save(models: TModel[]): Promise<TModel[]>;
|
|
deleteBy(filter: (model: TModel) => boolean): Promise<boolean>;
|
|
}
|