https://github.com/coursedesign/conev-core
Conev is a module that build environment variables from a source into config.
https://github.com/coursedesign/conev-core
conenv configuration environment npm npm-package
Last synced: 2 months ago
JSON representation
Conev is a module that build environment variables from a source into config.
- Host: GitHub
- URL: https://github.com/coursedesign/conev-core
- Owner: CourseDesign
- Created: 2020-03-19T04:10:16.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-24T09:03:59.000Z (over 3 years ago)
- Last Synced: 2025-03-09T14:42:45.404Z (over 1 year ago)
- Topics: conenv, configuration, environment, npm, npm-package
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/conev-core
- Size: 25.4 KB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
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](http://12factor.net/config) methodology.

## Install
```shell
# with npm
npm install conev-core
# or with Yarn
yarn add conev-core
```
## Config Builder
```typescript
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
```typescript
class Config {
constructor(sources: Source[], env: string[]);
setEnv(...env: string[]): Config;
addEnv(...env: string[]): Config;
addSource(source: Source, priority?: number): Config;
refresh(): Promise;
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
```typescript
interface Source {
export(): Promise>;
}
```
`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`.