@hashgraph/solo
Version:
An opinionated CLI tool to deploy and manage private Hedera Networks.
34 lines (33 loc) • 1.66 kB
TypeScript
import { type ConfigSource } from '../spi/config-source.js';
import { type ConfigAccessor } from '../spi/config-accessor.js';
import { type Refreshable } from '../spi/refreshable.js';
/**
* Represents a single application wide multi-layer configuration.
*/
export interface Config extends ConfigAccessor, Refreshable {
/**
* All the configuration sources which were used to build this configuration.
*/
readonly sources: ConfigSource[];
/**
* Adds a configuration source to the configuration.
*
* This method is not guaranteed to be thread-safe, so it should not be called concurrently with other methods
* that modify the configuration. Methods which read the configuration may be called concurrently, but may not
* reflect changes made by this method.
*
* This method is typically used to add configuration sources that have been created or loaded dynamically,
* such as configuration files, environment variables, or other sources of configuration data.
*
* The same {@link ConfigSource} instance can only be added once. If the same source is added again, a
* DuplicateConfigSourceError will be thrown. This is to ensure that each configuration source is unique within
* the configuration.
*
* A {@link ConfigSource} with the same name and ordinal as an existing source will be considered a duplicate,
* even if it is a different instance.
*
* @param source - The configuration source to be added.
* @throws {DuplicateConfigSourceError} if the configuration source has already been added.
*/
addSource(source: ConfigSource): void;
}