UNPKG

@credo-ts/core

Version:

<p align="center"> <br /> <img alt="Credo Logo" src="https://github.com/openwallet-foundation/credo-ts/blob/c7886cb8377ceb8ee4efe8d264211e561a75072d/images/credo-logo.png" height="250px" /> </p> <h1 align="center"><b>Credo - Core</b></h1

64 lines (63 loc) • 3.31 kB
import { InjectionSymbols } from "../../constants.mjs"; import { inject, injectable } from "../../plugins/index.mjs"; import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.151.0/helpers/esm/decorateMetadata.mjs"; import __decorate from "../../_virtual/_@oxc-project_runtime@0.151.0/helpers/esm/decorate.mjs"; import __decorateParam from "../../_virtual/_@oxc-project_runtime@0.151.0/helpers/esm/decorateParam.mjs"; import { CURRENT_FRAMEWORK_STORAGE_VERSION } from "./updates.mjs"; import { isStorageUpToDate } from "./isUpToDate.mjs"; import { StorageVersionRecord } from "./repository/StorageVersionRecord.mjs"; import { StorageVersionRepository } from "./repository/StorageVersionRepository.mjs"; //#region src/storage/migration/StorageUpdateService.ts let StorageUpdateService = class StorageUpdateService { constructor(logger, storageVersionRepository) { this.logger = logger; this.storageVersionRepository = storageVersionRepository; } async isUpToDate(agentContext, updateToVersion) { const currentStorageVersion = await this.getCurrentStorageVersion(agentContext); return isStorageUpToDate(currentStorageVersion, updateToVersion); } async hasStorageVersionRecord(agentContext) { return await this.storageVersionRepository.findById(agentContext, StorageVersionRecord.storageVersionRecordId) !== null; } async getCurrentStorageVersion(agentContext) { return (await this.getStorageVersionRecord(agentContext)).storageVersion; } static get frameworkStorageVersion() { return CURRENT_FRAMEWORK_STORAGE_VERSION; } async setCurrentStorageVersion(agentContext, storageVersion) { this.logger.debug(`Setting current agent storage version to ${storageVersion}`); const storageVersionRecord = await this.storageVersionRepository.findById(agentContext, StorageVersionRecord.storageVersionRecordId); if (!storageVersionRecord) { this.logger.trace("Storage upgrade record does not exist yet. Creating."); await this.storageVersionRepository.save(agentContext, new StorageVersionRecord({ storageVersion })); } else { this.logger.trace("Storage upgrade record already exists. Updating."); storageVersionRecord.storageVersion = storageVersion; await this.storageVersionRepository.update(agentContext, storageVersionRecord); } } /** * Retrieve the update record, creating it if it doesn't exist already. * * The storageVersion will be set to the INITIAL_STORAGE_VERSION if it doesn't exist yet, * as we can assume the wallet was created before the update record existed */ async getStorageVersionRecord(agentContext) { let storageVersionRecord = await this.storageVersionRepository.findById(agentContext, StorageVersionRecord.storageVersionRecordId); if (!storageVersionRecord) { storageVersionRecord = new StorageVersionRecord({ storageVersion: "0.1" }); await this.storageVersionRepository.save(agentContext, storageVersionRecord); } return storageVersionRecord; } }; StorageUpdateService = __decorate([ injectable(), __decorateParam(0, inject(InjectionSymbols.Logger)), __decorateMetadata("design:paramtypes", [Object, typeof StorageVersionRepository === "undefined" ? Object : StorageVersionRepository]) ], StorageUpdateService); //#endregion export { StorageUpdateService }; //# sourceMappingURL=StorageUpdateService.mjs.map