@livingdocs/conf v3.0.2
@livingdocs/conf
Package to load, merge and access environment-specific configuration files.
How to use
Example how to load the configuration for an environment defined in an environment variable:
const path = require('path')
const Conf = require('@livingdocs/conf')
const appConf = Conf.loadEnvironment(path.resolve('./conf'), process.env.ENVIRONMENT)Required folder structure
This modules assumes a specific folder structure. Following is an example:
yourConfigFolder/
environments/
all.js
local.js
staging.js
production.js
secrets/
local.jsTo load a e.g the 'local' environment use loadEnvironment(path.resolve('./yourConfigFolder'), 'local').
This will go through the following steps:
- load environments/all.js
- merge environments/local.js
- merge secrets/local.js
- merge environment variables
The environment names local, staging, production are not defined. You can
use whatever you want there.
#### Environment variables
Example all.js:
db: {
database: 'foo'
}You can override the database property as follows:
exports db__database=barDouble underscores (__) denote a child property.
API
The loadEnvironment method is the main entry point to init a configuration.
const appConf = Conf.loadEnvironment(file, environment)Get a config value. Note: this will throw an error if the config is not present.
appConf.get('db:database')To safely query for a config value provide a default value as the second param.
appConf.get('db:database', null)You can also set config values programmatically:
appConf.set('db:database', 'bar')You can manually merge whole objects to set configs in bulk:
appConf.merge(obj)Outputs the whole configuration as json string:
appConf.toString(obj)Copyright
Copyright (c) 2015 Livingdocs AG, all rights reserved
It is not permitted to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of this Software, except when explicitly stated otherwise by Livingdocs AG.