@hashgraph/solo
Version:
An opinionated CLI tool to deploy and manage private Hedera Networks.
50 lines (49 loc) • 2.7 kB
TypeScript
import { SingletonContainer } from './singleton-container.js';
import { ValueContainer } from './value-container.js';
export type InstanceOverrides = Map<symbol, SingletonContainer | ValueContainer>;
/**
* Container class to manage the dependency injection container
*/
export declare class Container {
private static instance;
private static isInitialized;
private constructor();
/**
* Get the singleton instance of the container
*/
static getInstance(): Container;
private static singletonContainers;
private static valueContainers;
private static factorySuppliers;
/**
* Initialize the container with the default dependencies
* @param homeDirectory - the home directory to use, defaults to constants.SOLO_HOME_DIR
* @param cacheDirectory - the cache directory to use, defaults to constants.SOLO_CACHE_DIR
* @param logLevel - the log level to use, defaults to 'debug'
* @param developmentMode - if true, show full stack traces in error messages
* @param overrides - instances to use instead of the default implementations
*/
init(homeDirectory?: string, cacheDirectory?: string, logLevel?: string, developmentMode?: boolean, overrides?: InstanceOverrides): void;
/**
* clears the container registries and re-initializes the container
* @param homeDirectory - the home directory to use, defaults to constants.SOLO_HOME_DIR
* @param cacheDirectory - the cache directory to use, defaults to constants.SOLO_CACHE_DIR
* @param logLevel - the log level to use, defaults to 'debug'
* @param developmentMode - if true, show full stack traces in error messages
* @param overrides - instances to use instead of the default implementations
*/
reset(homeDirectory?: string, cacheDirectory?: string, logLevel?: string, developmentMode?: boolean, overrides?: InstanceOverrides): void;
/**
* clears the container instances, useful for testing when you are using container.registerInstance()
* @param homeDirectory - the home directory to use, defaults to constants.SOLO_HOME_DIR
* @param cacheDirectory - the cache directory to use, defaults to constants.SOLO_CACHE_DIR
* @param logLevel - the log level to use, defaults to 'debug'
* @param developmentMode - if true, show full stack traces in error messages
* @param overrides - instances to use instead of the default implementations
*/
clearInstances(homeDirectory?: string, cacheDirectory?: string, logLevel?: string, developmentMode?: boolean, overrides?: InstanceOverrides): void;
/**
* only call dispose when you are about to system exit
*/
dispose(): Promise<void>;
}