Commit 6478433e authored by Kamron Aroonrua's avatar Kamron Aroonrua 💬

environment map

parent 41d90907
[ [
{"env":"BSCONFIG_AMQP_TYPE","conf":"amqp.type"}, {"env":"BSCONFIG_AMQP_TYPE","conf":"amqp.type"},
{"env":"BSCONFIG_AMQP_URL","conf":"amqp.url"} {"env":"BSCONFIG_AMQP_URL","conf":"amqp.url"},
{"env":"BSCONFIG_MEMSTORE_TYPE","conf":"memstore.type"},
{"env":"BSCONFIG_MEMSTORE_URL","conf":"memstore.url"},
{"env":"BSCONFIG_STORAGE_REPOSITORY","conf":"storage.repository"},
{"env":"BSCONFIG_STORAGE_APIHOSTNAME","conf":"storage.api_hostname"},
{"env":"BSCONFIG_AUTH_SECRET_TEXT","conf":"auth.secret.value"}
] ]
\ No newline at end of file
module.exports = require('./default.json');
\ No newline at end of file
var _dot = require('dot-prop'); var _dot = require('dot-prop');
var CONFIG_PATH = __dirname + '/conf/config'; var CONFIG_PATH = __dirname + '/conf/config';
var ENV_MAP = __dirname + '/conf/env';
var cfg = require(CONFIG_PATH); var cfg = require(CONFIG_PATH);
module.exports.config = cfg; module.exports.config = cfg;
...@@ -16,7 +18,7 @@ module.exports.getConfig = function(name,def,opt){ ...@@ -16,7 +18,7 @@ module.exports.getConfig = function(name,def,opt){
var bs_cfg={}; var bs_cfg={};
if(option.env){ if(option.env){
bs_cfg = envcnf('',cfg); bs_cfg = envcnf(cfg);
}else{ }else{
bs_cfg = cfg; bs_cfg = cfg;
} }
...@@ -30,19 +32,27 @@ module.exports.getConfig = function(name,def,opt){ ...@@ -30,19 +32,27 @@ module.exports.getConfig = function(name,def,opt){
return ret; return ret;
} }
var envcnf = function(name,init_obj){ var envcnf = function(init_obj){
var obj=init_obj || {}; var obj=init_obj || {};
var env = process.env; var env = process.env;
var name_pref = 'bs.config'; var envmap = require(ENV_MAP);
// var name_pref = 'bs.config';
if(name){name_pref=name_pref + '.' + name;} // if(name){name_pref=name_pref + '.' + name;}
if(env[name_pref]){obj=env[name_pref];} // if(env[name_pref]){obj=env[name_pref];}
var nfull = name_pref + '.'; // var nfull = name_pref + '.';
Object.keys(env).forEach((k)=>{ // Object.keys(env).forEach((k)=>{
if(k.startsWith(nfull)){ // if(k.startsWith(nfull)){
var dotkey = k.substring(nfull.length); // var dotkey = k.substring(nfull.length);
_dot.set(obj,dotkey,env[k]); // _dot.set(obj,dotkey,env[k]);
// }
// });
if(!Array.isArray(envmap)){return obj;}
envmap.forEach((em)=>{
if(em.env && em.conf && env[em.env]){
_dot.set(obj,em.conf,env[em.env]);
} }
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment