UNPKG

@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
'use strict'; 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; }