@hashgraph/solo
Version:
An opinionated CLI tool to deploy and manage private Hedera Networks.
38 lines (32 loc) • 1.38 kB
text/typescript
// SPDX-License-Identifier: Apache-2.0
import {type AccountManager} from '../../core/account-manager.js';
import {BaseCommand} from './../base.js';
import {type NodeCommandHandlers} from './handlers.js';
import {patchInject} from '../../core/dependency-injection/container-helper.js';
import {InjectTokens} from '../../core/dependency-injection/inject-tokens.js';
import {inject, injectable} from 'tsyringe-neo';
/**
* Defines the core functionalities of 'node' command
*/
()
export class NodeCommand extends BaseCommand {
public constructor(
(InjectTokens.AccountManager) private readonly accountManager?: AccountManager,
(InjectTokens.NodeCommandHandlers) public readonly handlers?: NodeCommandHandlers,
) {
super();
this.accountManager = patchInject(accountManager, InjectTokens.AccountManager, this.constructor.name);
this.handlers = patchInject(handlers, InjectTokens.NodeCommandHandlers, this.constructor.name);
}
/**
* stops and closes the port forwards
* - calls the accountManager.close()
* - for all portForwards, calls k8Factory.default().pods().readByReference(null).stopPortForward(srv)
*/
public async close(): Promise<void> {
await this.accountManager.close();
}
public getUnusedConfigs(configName: string): string[] {
return this.handlers.getUnusedConfigs(configName);
}
}