build-boiler
Version:
Build Boilerplate using Webpack, Eslint, Assemble, Nunjucks, and BrowserSync
65 lines (52 loc) • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function () {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var hasConfig = args.length === 1;
/**
* @param {Function} check
* @param {String,Regexp,Array,Object} opts
*
* @return {Boolean,Any} boolean or original options
*/
function compareVals(check, opts) {
var fnArgs = [opts];
var ret = undefined;
if (hasConfig) {
fnArgs.unshift(args[0]);
}
if (_lodash2.default.isFunction(check)) {
ret = check.apply(check, fnArgs);
} else if (_lodash2.default.isRegExp(check)) {
ret = check.test(opts);
} else if (_lodash2.default.isString(check)) {
ret = check === opts;
} else if (Array.isArray(check)) {
check.forEach(function (tester) {
if (ret) return;
ret = compareVals(tester, opts);
});
} else if (_lodash2.default.isPlainObject(check) && _lodash2.default.isPlainObject(opts)) {
ret = _lodash2.default.assign({}, opts, check);
}
return _lodash2.default.isUndefined(ret) ? opts : ret;
}
return hasConfig ? compareVals : compareVals.apply(null, args);
};
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
module.exports = exports['default'];
/**
* Utility to check if argument is function, call it, and always
* return what it returns, or the original options that were provided
*
* @param {Function} fn
* @param {Array} opts additional args to call `fn` with
*
* @return {Any}
*/