* Fix config dir lookup procedure

* Check in current directory and also throw error if config dir not found.
This commit is contained in:
2017-05-25 20:26:32 +05:30
parent ea1f06b940
commit 106a9d7cbb
2 changed files with 27 additions and 3 deletions
+26 -2
View File
@@ -1,15 +1,39 @@
var path = require('path'); var path = require('path');
var configDIR = process.env.CONFIG_DIR || path.resolve( path.join( require.main.paths[0], '..', 'config' ) ); var fs = require('fs');
var configDir;
var env = ( process.env.NODE_ENV || 'development' ).toLowerCase(); var env = ( process.env.NODE_ENV || 'development' ).toLowerCase();
var envPrefix = process.env.TC_PREFIX || 'TC_'; var envPrefix = process.env.TC_PREFIX || 'TC_';
var envRegex = new RegExp( '^' + envPrefix + '(.*)' ); var envRegex = new RegExp( '^' + envPrefix + '(.*)' );
var finalConfig = {}; var finalConfig = {};
var configDirLookupPath = [
path.resolve( path.join( require.main.paths[0], '..', 'config' ) ),
path.join( process.env.PWD, 'config' )
];
if( process.env.CONFIG_DIR ){
configDirLookupPath.unshift( process.env.CONFIG_DIR );
}
for (var i = 0, l = configDirLookupPath.length; i < l; i ++) {
var v = configDirLookupPath[i];
if( fs.existsSync(v) ){
configDir = v;
break;
}
}
if( !configDir ){
throw Error(
'Config directory not found.\n Look up at following locations failed.\n---\n** ' +
configDirLookupPath.join('\n** ') + '\n---\n' +
'\n Please set CONFIG_DIR env variable');
}
function loadConfig( name ){ function loadConfig( name ){
var out = {}; var out = {};
try{ try{
out = require( configDIR + '/' + name ); out = require( configDir + '/' + name );
} catch(e){ } catch(e){
out = {}; out = {};
} }
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "tconfig", "name": "tconfig",
"version": "0.1.0", "version": "0.1.1",
"description": "A simple transparent config file loader for Nodejs applications. any config field can be overriden using environmen variables", "description": "A simple transparent config file loader for Nodejs applications. any config field can be overriden using environmen variables",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {