@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
JavaScript
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