diff --git a/lib/node/config.js b/lib/node/config.js index d2c03c25..6f178d2b 100644 --- a/lib/node/config.js +++ b/lib/node/config.js @@ -45,6 +45,7 @@ config.alias = { config.parse = function parse(options) { var data = {}; + var raw = {}; var arg, conf, prefix, filename, dirname; if (!options) @@ -54,16 +55,19 @@ config.parse = function parse(options) { if (options.env) { arg = config.parseEnv(); + merge(raw, arg.data); merge(data, arg); } if (options.arg) { arg = config.parseArg(); + merge(raw, arg.data); merge(data, arg); } if (options.query) { arg = config.parseQuery(); + merge(raw, arg.data); merge(data, arg); } @@ -76,6 +80,7 @@ config.parse = function parse(options) { dirname = utils.normalize(filename, true); conf = config.readConfig(filename, prefix, dirname); + raw = merge(conf.data, raw); data = merge(conf, data); prefix = config.getPrefix(data); @@ -91,6 +96,8 @@ config.parse = function parse(options) { } } + data.data = raw; + // Force fast properties // after all those merges. utils.fastProp(data);