Load configurations from cli, environment and config files and validate them with a JSON schema.
Per default environment variables are understood like this:
MYAPP_EMAIL__CLIENT_ID=123abcgets parsed to
{ email: { clientId: '123abc', }, }npm install @datatypes/configconst Config = require('@datatypes/config') const exampleConfig = new Config({ appName: 'myapp' }) exampleConfig .loadEnvironment({ prefix: 'MYAPP_ALT_NAME_', // Default is MYAPP_ pathSeparator: '--', // Default is __ wordSeparator: '-', // Default is _ casing: 'snake', // Default is camel encodeDataUris: false, // Default is true }) .loadCliArguments() .loadDefaultFiles() .loadFile({ filePath: '/path/to/config-file.yaml', // Supports .yaml, .json, .js isRequired: true, // Default is false ignoreIsDirectoryError: true, // Default is false }) .merge({ settingA: 'valueA', }) // Replaces the values which contain a file path // of special keys with the file content of the file path .loadFilePathValues({ triggerCharater: '%', // Default @ shouldTrim: false, // Default true }) console.log(exampleConfig.config)With increasing priority:
.myapp.myapp{,.json,.yaml}.myapp/config.myapp/config{,.json,.yaml}.config/myapp/config{,.json,.yaml}(This with.yamlis recommended).config/myapp/myapp{,.json,.yaml}/.myapp{,.json,.yaml}- …
$(pwd)/.myapp{,.json,.yaml}
- nconf - Hierarchical node.js configuration with files, environment variables, command-line arguments and atomic object merging.
- node-config - Node.js Application Configuration.
- node-convict - Unruly configuration management for nodejs.
- rc - The non-configurable configuration loader for lazy people.