@hashgraph/solo
Version:
An opinionated CLI tool to deploy and manage private Hedera Networks.
41 lines • 1.53 kB
JavaScript
/**
* 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