UNPKG

@hashgraph/solo

Version:

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

34 lines (33 loc) 1.66 kB
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; }