conev-core
v1.3.1
Published
Conev is a module that build environment variables from a `source` into `config`.
Downloads
8
Readme
conev-core
Conev is a module that build environment variables from a source
into config
. Storing configuration in the environment separate from code is based on The Twelve-Factor App methodology.
Install
# with npm
npm install conev-core
# or with Yarn
yarn add conev-core
Config Builder
class ConfigBuilder {
setEnv(...env: string[]): ConfigBuilder;
addEnv(...env: string[]): ConfigBuilder;
addSource(source: Source, priority?: number): ConfigBuilder;
build(): Config;
}
ConfigBuilder
takes a configuration from the source and creates a new configuration according to the environment. Env
and Source
have priority. If priority is not defined, highest priority is added first.
Config
class Config {
constructor(sources: Source[], env: string[]);
setEnv(...env: string[]): Config;
addEnv(...env: string[]): Config;
addSource(source: Source, priority?: number): Config;
refresh(): Promise<Config>;
validate(): void;
get(key?: string): any | null;
set(key: string, value: any): void;
}
config
is a container for configuration. config
is provided by creating a new configuration from the configuration and environment obtained from source
.
Source
interface Source {
export(): Promise<Map<string, object>>;
}
Source
defines the source from which to get the configuration. Map is returned as the result value of export
. The key of this map is environment and the value is the configuration when environment.
Expansion
It can be extended by defining a new Source
.