UNPKG

@hashgraph/solo

Version:

An opinionated CLI tool to deploy and manage private Hedera Networks.

37 lines 1.53 kB
// SPDX-License-Identifier: Apache-2.0 import { VersionRange } from '../../../../../business/utils/version-range.js'; import { SemanticVersion } from '../../../../../business/utils/semantic-version.js'; import { IllegalArgumentError } from '../../../../../business/errors/illegal-argument-error.js'; import { InvalidSchemaVersionError } from '../../api/invalid-schema-version-error.js'; // Adds `realm` and `shard` to every deployment export class LocalConfigV2Migration { get range() { return VersionRange.fromIntegerVersion(1); } get version() { return new SemanticVersion(2); } migrate(source) { if (!source) { // We should never pass null or undefined to this method, if this happens we should throw an error throw new IllegalArgumentError('source must not be null or undefined'); } const clone = structuredClone(source); if (clone.schemaVersion !== 1) { throw new InvalidSchemaVersionError(clone.schemaVersion, 0); } // Migrate the deployments to an array const mdeps = []; for (const k in clone.deployments) { const d = clone.deployments[k]; d.realm = d.realm ?? 0; d.shard = d.shard ?? 0; mdeps.push(d); } clone.deployments = mdeps; // Set the schema version to the new version clone.schemaVersion = this.version.major; return clone; } } //# sourceMappingURL=local-config-v2-migration.js.map