diff --git a/README.md b/README.md index 7bb7b8d..17328f7 100644 --- a/README.md +++ b/README.md @@ -38,37 +38,42 @@ hari@hari-VirtualBox:~app$ node xyz.js ``` -#### Override using NODE_ENV -values from config/production overides the default one +#### Read additional config based on NODE_ENV variable. +If we specify NODE_ENV=xyz then, config/xyz.js will overide the values from default.js. **Overriding is a deep merge** ```bash hari@hari-VirtualBox:~app$ env NODE_ENV=production node xyz.js -{ port: 5000 } +{ port: 4000 } ``` -#### Override using Environtment Variables. +#### Set any configuration variable using Environtment variable. +By setting an Environtment variable '=', we can set config[key] as value. Default prefix is `TC_` +For eg: -TC_port will set config.port + * `TC_port` will set config.port + + * `TC_a.b.c` will set config.a.b.c -TC_a.b.c will set config.a.b.c ```bash hari@hari-VirtualBox:~app$ env NODE_ENV=production TC_db.mysql.user=root node xyz.js { port: 5000, db: { mysql: { user: 'root' } } } ``` -#### Override using Environtment Variables. Custom Prefix -Prefix can be changed using Environtment variable +##### Use custom env prefix. + +default prefix can be changed using Environtment variable by setting `TC_PREFIX` Environtment variable + ```bash export TC_PREFIX=MYAPP_ -export MYAPP_PORT=8080 +export MYAPP_port=8080 hari@hari-VirtualBox:~app$ env MYAPP_db.mysql.user=root node xyz.js { port: 8080, db: { mysql: { user: 'root' } } } ``` #### use custom config directory -config directory can be changed using Environtment variable +config directory can be changed using Environtment variable by setting `CONFIG_DIR` Environtment variable ```bash hari@hari-VirtualBox:~app$ env CONFIG_DIR=../config TC_PREFIX=MYAPP_ NODE_ENV=production MYAPP_db.mysql.user=root node xyz.js { dir: '../config', db: { mysql: { user: 'root' } } } diff --git a/example/app/config/default.json b/example/app/config/default.json index fa2b2eb..81acf9c 100644 --- a/example/app/config/default.json +++ b/example/app/config/default.json @@ -1,3 +1,7 @@ { - "port":3000 + "port":3000, + "pool":{ + "min":2, + "max":10 + } } diff --git a/example/app/xyz.js b/example/app/xyz.js index e4d8d0f..af0e334 100644 --- a/example/app/xyz.js +++ b/example/app/xyz.js @@ -1,2 +1,2 @@ -console.log( require('tconfig')); +console.log( require('../../')); diff --git a/package.json b/package.json index 2f2ae20..eb5a1dd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tconfig", - "version": "0.1.1", + "version": "0.1.2", "description": "A simple transparent config file loader for Nodejs applications. any config field can be overriden using environmen variables", "main": "index.js", "scripts": { @@ -20,5 +20,8 @@ "bugs": { "url": "https://github.com/harish2704/tconfig/issues" }, - "homepage": "https://github.com/harish2704/tconfig#readme" + "homepage": "https://github.com/harish2704/tconfig#readme", + "dependencies": { + "lodash.defaultsdeep": "^4.6.0" + } }