Skip to content
Snippets Groups Projects
Dominik Sigmund's avatar
Sigmund, Dominik authored
b008d056
History

config

Simple Config with ENV and Files Support.

Installation

  • npm install --save @general/config

Usage

const Config = require('@general/config')
let config = new Config([basePath])

Then config is your config object. (Use it like config.setting)

It reads from the following sources, performing a deep merge:
(The Top Value overwrites the lower ones)

  • ENV
  • config.json
  • config.defaults.json

Enviroment Variables can target deep nested settings:
The Setting setting.deep.key can be reached with SETTING_DEEP_KEY

You may use the function reload() to reload the config from all sources.
`config.reload()``

This makes reload a reserved keyword

If you give a basePath, the config-Files are used from there.
Else the main dir of the application will be used.

Values

You may use direct values like strings or numbers:

{
  "key": "value"
}

You can also use files to read the value from. This makes the config compatible with e.g. secrets:

{
  "key": "file:/path/to/file"
}

Examples

Only config.defaults.json

node examples/only-defaults/index.js

Only config.json

(Kind of legacy use)

node examples/only-local/index.js

defaults and config.json

node examples/defaults-overwrite/index.js

enviroment variables

(Enviroment set by command to not pollute your machine)

SETTING=overwritten-by-env node examples/env/index.js

use files to read from

(Enviroment set by command to not pollute your machine)

SETTING=file:examples/files/setting_1.txt node examples/files/index.js