UNPKG

@sap-ux/store

Version:

NPM module for storing persistent data

52 lines 1.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SystemDataProvider = void 0; const hybrid_1 = require("../data-access/hybrid"); const backend_system_1 = require("../entities/backend-system"); const constants_1 = require("./constants"); const SystemDataProvider = class { dataAccessor; entityName = constants_1.Entities.BackendSystem; logger; constructor(logger, options = {}) { this.logger = logger; this.dataAccessor = (0, hybrid_1.getHybridStore)(this.logger, options); } async read(key) { return this.dataAccessor.read({ entityName: this.entityName, id: key.getId() }); } async write(entity) { let e; if (!(entity instanceof backend_system_1.BackendSystem)) { // We need to use the correct class otherwise the annotations are not effective e = new backend_system_1.BackendSystem({ ...entity }); } else { e = entity; } return this.dataAccessor.write({ entityName: this.entityName, id: backend_system_1.BackendSystemKey.from(entity).getId(), entity: e }); } async delete(entity) { return this.dataAccessor.del({ entityName: this.entityName, id: backend_system_1.BackendSystemKey.from(entity).getId() }); } async getAll() { const systems = await this.dataAccessor.readAll({ entityName: this.entityName }); for (const id of Object.keys(systems)) { const system = systems[id]; if (!system?.url?.trim()) { this.logger.warn(`Filtering system with ID [${id}] as it seems corrupt. Run repair`); delete systems[id]; } } return Object.values(systems); } }; exports.SystemDataProvider = SystemDataProvider; //# sourceMappingURL=backend-system.js.map