Browse Source

* Fix config dir lookup procedure

* Check in current directory and also throw error if config dir not found.
master v0.1.1
Harish.K 8 years ago
parent
commit
106a9d7cbb
  1. 28
      index.js
  2. 2
      package.json

28
index.js

@ -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 = {};
} }

2
package.json

@ -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": {

Loading…
Cancel
Save