UNPKG

build-boiler

Version:

Build Boilerplate using Webpack, Eslint, Assemble, Nunjucks, and BrowserSync

65 lines (52 loc) 1.73 kB
'use strict'; 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} */