lore
Version:
Convention-driven framework for building React-Redux applications
63 lines (48 loc) • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _webpackRequiredir = require('webpack-requiredir');
var _webpackRequiredir2 = _interopRequireDefault(_webpackRequiredir);
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// 'config/*'
/* global __LORE_ROOT__ */
function loadOtherConfigFiles() {
var context = require.context(__LORE_ROOT__ + '/config', true, /\.js$/);
var config = (0, _webpackRequiredir2.default)(context, {
exclude: ['local.js']
});
return _lodash2.default.omit(config, 'env');
}
// 'config/local'
function loadLocalOverrideFile() {
var context = require.context(__LORE_ROOT__ + '/config', false, /local.js$/);
var dictionary = (0, _webpackRequiredir2.default)(context, {
// options
});
return dictionary.local || {};
}
// 'config/env/*'
function loadEnvConfigFile(env) {
var context = require.context(__LORE_ROOT__ + '/config/env', false, /\.js$/);
var dictionary = (0, _webpackRequiredir2.default)(context, {
// options
});
return dictionary[env] || {};
}
exports.default = {
load: function load(env) {
// Load all the config files we need to combine
var configs = {
'config/*': loadOtherConfigFiles(),
'config/local': loadLocalOverrideFile(),
'config/env/*': loadEnvConfigFile(env)
};
// Merge the configs, with env/*.js files taking precedence over others, and local.js
// taking precedence over everything
return _lodash2.default.merge(configs['config/*'], configs['config/env/*'], configs['config/local']);
}
};
module.exports = exports['default'];