nukak
Version:
flexible and efficient ORM, with declarative JSON syntax and smart type-safety
51 lines • 6.47 kB
JavaScript
export class GenericRepository {
entity;
querier;
constructor(entity, querier) {
this.entity = entity;
this.querier = querier;
}
findOneById(id, q) {
return this.querier.findOneById(this.entity, id, q);
}
findOne(q) {
return this.querier.findOne(this.entity, q);
}
findMany(q) {
return this.querier.findMany(this.entity, q);
}
findManyAndCount(q) {
return this.querier.findManyAndCount(this.entity, q);
}
count(q) {
return this.querier.count(this.entity, q);
}
insertOne(payload) {
return this.querier.insertOne(this.entity, payload);
}
upsertOne(conflictPaths, payload) {
return this.querier.upsertOne(this.entity, conflictPaths, payload);
}
insertMany(payload) {
return this.querier.insertMany(this.entity, payload);
}
updateOneById(id, payload) {
return this.querier.updateOneById(this.entity, id, payload);
}
updateMany(qm, payload) {
return this.querier.updateMany(this.entity, qm, payload);
}
saveOne(payload) {
return this.querier.saveOne(this.entity, payload);
}
saveMany(payload) {
return this.querier.saveMany(this.entity, payload);
}
deleteOneById(id, opts) {
return this.querier.deleteOneById(this.entity, id, opts);
}
deleteMany(qm, opts) {
return this.querier.deleteMany(this.entity, qm, opts);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY1JlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS9nZW5lcmljUmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxNQUFNLE9BQU8saUJBQWlCO0lBRWpCO0lBQ0E7SUFGWCxZQUNXLE1BQWUsRUFDZixPQUFnQjtRQURoQixXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQ2YsWUFBTyxHQUFQLE9BQU8sQ0FBUztJQUN4QixDQUFDO0lBRUosV0FBVyxDQUFDLEVBQWMsRUFBRSxDQUFlO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE9BQU8sQ0FBQyxDQUFjO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsUUFBUSxDQUFDLENBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxDQUFXO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxLQUFLLENBQUMsQ0FBa0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBVTtRQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxhQUFvQyxFQUFFLE9BQVU7UUFDeEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxhQUFhLENBQUMsRUFBYyxFQUFFLE9BQVU7UUFDdEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQWtCLEVBQUUsT0FBVTtRQUN2QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxPQUFPLENBQUMsT0FBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQWMsRUFBRSxJQUFtQjtRQUMvQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxVQUFVLENBQUMsRUFBa0IsRUFBRSxJQUFtQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgSWRWYWx1ZSxcbiAgUXVlcmllcixcbiAgUXVlcnlPcHRpb25zLFxuICBSZXBvc2l0b3J5LFxuICBUeXBlLFxuICBRdWVyeVNlYXJjaCxcbiAgUXVlcnlPbmUsXG4gIFF1ZXJ5LFxuICBRdWVyeUNvbmZsaWN0UGF0aHMsXG59IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuXG5leHBvcnQgY2xhc3MgR2VuZXJpY1JlcG9zaXRvcnk8RT4gaW1wbGVtZW50cyBSZXBvc2l0b3J5PEU+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcmVhZG9ubHkgZW50aXR5OiBUeXBlPEU+LFxuICAgIHJlYWRvbmx5IHF1ZXJpZXI6IFF1ZXJpZXIsXG4gICkge31cblxuICBmaW5kT25lQnlJZChpZDogSWRWYWx1ZTxFPiwgcT86IFF1ZXJ5T25lPEU+KSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5maW5kT25lQnlJZCh0aGlzLmVudGl0eSwgaWQsIHEpO1xuICB9XG5cbiAgZmluZE9uZShxOiBRdWVyeU9uZTxFPikge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZmluZE9uZSh0aGlzLmVudGl0eSwgcSk7XG4gIH1cblxuICBmaW5kTWFueShxOiBRdWVyeTxFPikge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZmluZE1hbnkodGhpcy5lbnRpdHksIHEpO1xuICB9XG5cbiAgZmluZE1hbnlBbmRDb3VudChxOiBRdWVyeTxFPikge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZmluZE1hbnlBbmRDb3VudCh0aGlzLmVudGl0eSwgcSk7XG4gIH1cblxuICBjb3VudChxPzogUXVlcnlTZWFyY2g8RT4pIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLmNvdW50KHRoaXMuZW50aXR5LCBxKTtcbiAgfVxuXG4gIGluc2VydE9uZShwYXlsb2FkOiBFKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5pbnNlcnRPbmUodGhpcy5lbnRpdHksIHBheWxvYWQpO1xuICB9XG5cbiAgdXBzZXJ0T25lKGNvbmZsaWN0UGF0aHM6IFF1ZXJ5Q29uZmxpY3RQYXRoczxFPiwgcGF5bG9hZDogRSkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIudXBzZXJ0T25lKHRoaXMuZW50aXR5LCBjb25mbGljdFBhdGhzLCBwYXlsb2FkKTtcbiAgfVxuXG4gIGluc2VydE1hbnkocGF5bG9hZDogRVtdKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5pbnNlcnRNYW55KHRoaXMuZW50aXR5LCBwYXlsb2FkKTtcbiAgfVxuXG4gIHVwZGF0ZU9uZUJ5SWQoaWQ6IElkVmFsdWU8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLnVwZGF0ZU9uZUJ5SWQodGhpcy5lbnRpdHksIGlkLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHVwZGF0ZU1hbnkocW06IFF1ZXJ5U2VhcmNoPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci51cGRhdGVNYW55KHRoaXMuZW50aXR5LCBxbSwgcGF5bG9hZCk7XG4gIH1cblxuICBzYXZlT25lKHBheWxvYWQ6IEUpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyaWVyLnNhdmVPbmUodGhpcy5lbnRpdHksIHBheWxvYWQpO1xuICB9XG5cbiAgc2F2ZU1hbnkocGF5bG9hZDogRVtdKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5zYXZlTWFueSh0aGlzLmVudGl0eSwgcGF5bG9hZCk7XG4gIH1cblxuICBkZWxldGVPbmVCeUlkKGlkOiBJZFZhbHVlPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllci5kZWxldGVPbmVCeUlkKHRoaXMuZW50aXR5LCBpZCwgb3B0cyk7XG4gIH1cblxuICBkZWxldGVNYW55KHFtOiBRdWVyeVNlYXJjaDxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnF1ZXJpZXIuZGVsZXRlTWFueSh0aGlzLmVudGl0eSwgcW0sIG9wdHMpO1xuICB9XG59XG4iXX0=