aza-node2
Version:
node framework based on aza-node 0.6.4
70 lines (52 loc) • 1.88 kB
JavaScript
/**
* Created by lawrence on 5/12/16.
*/
var Config = {
build: function (configPath) {
var fs = require('fs');
var basePath = configPath || process.cwd();
var paths = [];
var path = '';
paths.push(basePath + '/config');
//paths.push(basePath + '/node_modules/aza-node/config');
var config = {};
createConfig(paths);
function createConfig(p_paths) {
for (i = 0; i < p_paths.length; i++) {
path = p_paths[i];
if (!fs.existsSync(path))break;
var config_files = fs.readdirSync(path);
for (var j = 0; j < config_files.length; j++) {
var index = config_files[j];
var filename = index.replace(/^.*[\\\/]/, '');
var arrTemp = filename.split('.');
var extension = arrTemp.pop();
if (extension == 'js') {
var key = arrTemp.pop();
config[key] = require(path + '/' + index);
}
}
}
}
// Create getConfig helper
global.getConfig = function (namespace, key) {
var conf = config[namespace];
if (!conf) return null;
if (!key) return conf;
return conf.get(process.env.NODE_ENV)[key];
};
var modules = getConfig('app', 'modules');
if (!modules)return;
var packagesPaths = [];
for (var i = 0; i < modules.length; i++) {
var module = modules[i];
path = basePath + '/modules/' + module + '/config';
if (fs.existsSync(path)) {
packagesPaths.push(path);
}
}
createConfig(packagesPaths);
return config;
}
};
module.exports = Config;