@aequum/in-memory
Version:
aequum in-memory stuff
38 lines (37 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseCRUDLInMemoryService = void 0;
const crudl_1 = require("@aequum/crudl");
class BaseCRUDLInMemoryService extends crudl_1.BaseCRUDLService {
primaryKeyField = 'id';
repository;
async create(data) {
return this.repository.put(data);
}
async retrieve(id) {
return this.repository.getOneById(id);
}
async retrieveBy(filter) {
return this.repository.getOne(filter);
}
async update(id, data) {
await this.repository.update({ [this.primaryKeyField]: id }, data);
return this.repository.getOneById(id);
}
async updateBy(filter, data) {
const updated = this.repository.update(filter, data);
if (Array.isArray(updated))
return updated;
return updated;
}
async delete(id) {
await this.repository.delete({ [this.primaryKeyField]: id });
}
async deleteBy(filter) {
await this.repository.delete(filter);
}
async list(filter) {
return this.repository.find(filter ?? {});
}
}
exports.BaseCRUDLInMemoryService = BaseCRUDLInMemoryService;