UNPKG

@sap-ux/store

Version:

NPM module for storing persistent data

53 lines 1.59 kB
import { getSecureStore } from '../../secure-store/index.js'; import { ApiHubSettingsProvider } from '../../data-provider/api-hub.js'; import { ApiHubSettingsKey } from '../../entities/api-hub.js'; import { migrateToLatestVersion } from './migration.js'; export class ApiHubSettingsService { dataProvider; logger; secureStore; migrationDone = false; key = new ApiHubSettingsKey(); constructor(logger) { this.logger = logger; this.dataProvider = new ApiHubSettingsProvider(this.logger); } async migrate() { if (this.migrationDone) { return; } if (!this.secureStore) { this.secureStore = getSecureStore(this.logger); } await migrateToLatestVersion({ logger: this.logger, secureStore: this.secureStore, dataProvider: this.dataProvider }); this.migrationDone = true; } async partialUpdate() { await this.migrate(); throw new Error('NOT IMPLEMENTED'); } async read() { await this.migrate(); return this.dataProvider.read(this.key); } async write(entity) { await this.migrate(); return this.dataProvider.write(entity); } async delete(entity) { await this.migrate(); return this.dataProvider.delete(entity); } async getAll() { await this.migrate(); return this.dataProvider.getAll(); } } export function getInstance(logger) { return new ApiHubSettingsService(logger); } //# sourceMappingURL=service.js.map