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