UNPKG

@hashgraph/solo

Version:

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

41 lines 1.53 kB
/** * SPDX-License-Identifier: Apache-2.0 */ import { ComponentType } from '../enumerations.js'; import { SoloError } from '../../../errors.js'; import { BaseComponent } from './base_component.js'; export class RelayComponent extends BaseComponent { consensusNodeAliases; /** * @param name - to distinguish components. * @param cluster - in which the component is deployed. * @param namespace - associated with the component. * @param consensusNodeAliases - list node aliases */ constructor(name, cluster, namespace, consensusNodeAliases = []) { super(ComponentType.Relay, name, cluster, namespace); this.consensusNodeAliases = consensusNodeAliases; this.validate(); } /* -------- Utilities -------- */ /** Handles creating instance of the class from plain object. */ static fromObject(component) { const { name, cluster, namespace, consensusNodeAliases } = component; return new RelayComponent(name, cluster, namespace, consensusNodeAliases); } validate() { super.validate(); this.consensusNodeAliases.forEach(alias => { if (!alias || typeof alias !== 'string') { throw new SoloError(`Invalid consensus node alias: ${alias}, aliases ${this.consensusNodeAliases}`); } }); } toObject() { return { consensusNodeAliases: this.consensusNodeAliases, ...super.toObject(), }; } } //# sourceMappingURL=relay_component.js.map