UNPKG

vue-app-sdk

Version:
47 lines (46 loc) 2.05 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const _LodashWrapper = require("./_LodashWrapper.cjs"); const _flatRest = require("./_flatRest.cjs"); const _getData = require("./_getData.cjs"); const _getFuncName = require("./_getFuncName.cjs"); const isArray = require("./isArray.cjs"); const _isLaziable = require("./_isLaziable.cjs"); var FUNC_ERROR_TEXT = "Expected a function"; var WRAP_CURRY_FLAG = 8, WRAP_PARTIAL_FLAG = 32, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256; function createFlow(fromRight) { return _flatRest.default(function(funcs) { var length = funcs.length, index = length, prereq = _LodashWrapper.default.prototype.thru; while (index--) { var func = funcs[index]; if (typeof func != "function") { throw new TypeError(FUNC_ERROR_TEXT); } if (prereq && !wrapper && _getFuncName.default(func) == "wrapper") { var wrapper = new _LodashWrapper.default([], true); } } index = wrapper ? index : length; while (++index < length) { func = funcs[index]; var funcName = _getFuncName.default(func), data = funcName == "wrapper" ? _getData.default(func) : void 0; if (data && _isLaziable.default(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) { wrapper = wrapper[_getFuncName.default(data[0])].apply(wrapper, data[3]); } else { wrapper = func.length == 1 && _isLaziable.default(func) ? wrapper[funcName]() : wrapper.thru(func); } } return function() { var args = arguments, value = args[0]; if (wrapper && args.length == 1 && isArray.default(value)) { return wrapper.plant(value).value(); } var index2 = 0, result = length ? funcs[index2].apply(this, args) : value; while (++index2 < length) { result = funcs[index2].call(this, result); } return result; }; }); } exports.default = createFlow;