@sa-labs/fate-core
Version:
fate-core contains the base assumptions of the fate ecosystem as well as utilities for operating with fate.
56 lines (40 loc) • 1.73 kB
JavaScript
exports.__esModule = true;
exports.autoconfigure = autoconfigure;
exports.manual = manual;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _rc = require('rc');
var _rc2 = _interopRequireDefault(_rc);
var _lodashObjectMerge = require('lodash/object/merge');
var _lodashObjectMerge2 = _interopRequireDefault(_lodashObjectMerge);
var _lodashLangIsFunction = require('lodash/lang/isFunction');
var _lodashLangIsFunction2 = _interopRequireDefault(_lodashLangIsFunction);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _humps = require('humps');
function autoconfigure(conf, cb) {
var config = _rc2['default']('fate', conf || {});
return _fs2['default'].readdirSync(_path2['default'].resolve(__dirname, '../')).filter(function (val) {
// select all fate packages
return val.startsWith('fate-');
}).map(function (pkg) {
// configure constants, using any user-supplied values
var pkgConstants = require(pkg + '/constants');
if (!_lodashLangIsFunction2['default'](pkgConstants)) {
throw new Error(pkg + ' has no constants function.\n This is likely an error in ' + pkg + ', not in this project.');
}
var camel = _humps.camelize(pkg);
return pkgConstants(config[camel] || {});
}).reduce(function (acc, val) {
// merge all separate constants objects
// there should be no conflicts between keys
return _lodashObjectMerge2['default']({}, acc, val);
});
}
function manual(conf) {
var config = _path2['default'].resolve(process.cwd(), '.faterc');
console.log('config', config);
return config;
}
;