@sap-ux/store
Version:
NPM module for storing persistent data
52 lines • 1.92 kB
JavaScript
;
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