konfig-yaml
v1.0.1
Published
Loader for YAML configuration with ENVs
Readme
konfig-yaml
The loader of yaml base configuration for each run enviroments like settingslogic.
- Expand environment variables (ex.
users-${NODE_ENV})- If an environment variable is not set, it is to be emtpy string.
- If
${DB_USER:-user}or${DB_USER:user}is defined,useris expanded unless DB_USER does not exists.
- Deep merge the environment settings and default settings (except array items)
- Node.js 6.10 or later
- The gem library also exists for Ruby.
Install
$ npm i konfig-yamlHow to Use
const konfig = require('konfig-yaml');
config = konfig(<name>, [opts]);namespecifys the name ofconfig/<name>.yml( defaultapp)optspathconfig directory path resolved from the process current one ( default NODE_CONFIG_DIR value orconfig)envRun environment ( default NODE_ENV value ordevelopment)useCachewhether using cache ( defaulttrue)
Clear cache
konfig.clear();Example
Setup
config/app.yml
default:
port: 8080
logger:
level: info
db:
name: ${BRAND}-app-${NODE_ENV}
user: user
pass: pass
production:
port: 1080
logger:
level: error
db:
pass: Passwordmain.js
const konfig = require('konfig-yaml');
const config = konfig();
console.log(config.port);
console.log(config.logger.level);
console.log(config.db.user);
console.log(config.db.name);
console.log(config.db.password);Run
In development
$ NODE_ENV=development BRAND=normal node main.js
8080
info
normal-app-development
user
passIn production
$ NODE_ENV=production BRAND=awesome node main.js
1080
error
awesome-app-production
user
Password