generic-repository
Version:
Generic repository pattern implementation for node.js. Currently supports mongo and in-memory(testing) databases.
29 lines (28 loc) • 1.1 kB
TypeScript
import Repository from '../repository';
import { Db } from 'mongodb';
export default class MongoDBRepository<T> implements Repository<T> {
Type: {
new (...args: any[]): T;
};
private Model;
constructor(type: {
new (...args: any[]): T;
}, db: Promise<Db>);
paginate(conditions: any, sortOptions: any, page: any, perPage: any): Promise<T[]>;
insertMany(list: T[]): Promise<T[]>;
count(conditions?: Object): Promise<number>;
find(conditions: any): Promise<T[]>;
findOne(conditions: Object): Promise<T>;
findById(id: string): Promise<T>;
findLast(sortField: string, limit: number): Promise<T[]>;
findLastByQuery(conditions: any, sortField: string, limit: number): Promise<T[]>;
insert(data: T): Promise<T>;
update(conditions: any, newData: any): Promise<T>;
deleteOne(conditions: any): Promise<boolean>;
deleteMany(conditions: any): Promise<boolean>;
private CastQueryIdToObjectId(query);
private idToObjectId(id);
private toInstance;
private toInstanceArray(listItems);
private reject(error);
}