UNPKG

vue-app-sdk

Version:
63 lines (62 loc) 2.52 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const _composeArgs = require("./_composeArgs.cjs"); const _composeArgsRight = require("./_composeArgsRight.cjs"); const _countHolders = require("./_countHolders.cjs"); const _createCtor = require("./_createCtor.cjs"); const _createRecurry = require("./_createRecurry.cjs"); const _getHolder = require("./_getHolder.cjs"); const _reorder = require("./_reorder.cjs"); const _replaceHolders = require("./_replaceHolders.cjs"); const _root = require("./_root.cjs"); var WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_ARY_FLAG = 128, WRAP_FLIP_FLAG = 512; function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { var isAry = bitmask & WRAP_ARY_FLAG, isBind = bitmask & WRAP_BIND_FLAG, isBindKey = bitmask & WRAP_BIND_KEY_FLAG, isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? void 0 : _createCtor.default(func); function wrapper() { var length = arguments.length, args = Array(length), index = length; while (index--) { args[index] = arguments[index]; } if (isCurried) { var placeholder = _getHolder.default(wrapper), holdersCount = _countHolders.default(args, placeholder); } if (partials) { args = _composeArgs.default(args, partials, holders, isCurried); } if (partialsRight) { args = _composeArgsRight.default(args, partialsRight, holdersRight, isCurried); } length -= holdersCount; if (isCurried && length < arity) { var newHolders = _replaceHolders.default(args, placeholder); return _createRecurry.default( func, bitmask, createHybrid, wrapper.placeholder, thisArg, args, newHolders, argPos, ary, arity - length ); } var thisBinding = isBind ? thisArg : this, fn = isBindKey ? thisBinding[func] : func; length = args.length; if (argPos) { args = _reorder.default(args, argPos); } else if (isFlip && length > 1) { args.reverse(); } if (isAry && ary < length) { args.length = ary; } if (this && this !== _root.default && this instanceof wrapper) { fn = Ctor || _createCtor.default(fn); } return fn.apply(thisBinding, args); } return wrapper; } exports.default = createHybrid;