UNPKG

vue-app-sdk

Version:
39 lines (38 loc) 1.39 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const _apply = require("./_apply.cjs"); const _createCtor = require("./_createCtor.cjs"); const _createHybrid = require("./_createHybrid.cjs"); const _createRecurry = require("./_createRecurry.cjs"); const _getHolder = require("./_getHolder.cjs"); const _replaceHolders = require("./_replaceHolders.cjs"); const _root = require("./_root.cjs"); function createCurry(func, bitmask, arity) { var Ctor = _createCtor.default(func); function wrapper() { var length = arguments.length, args = Array(length), index = length, placeholder = _getHolder.default(wrapper); while (index--) { args[index] = arguments[index]; } var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : _replaceHolders.default(args, placeholder); length -= holders.length; if (length < arity) { return _createRecurry.default( func, bitmask, _createHybrid.default, wrapper.placeholder, void 0, args, holders, void 0, void 0, arity - length ); } var fn = this && this !== _root.default && this instanceof wrapper ? Ctor : func; return _apply.default(fn, this, args); } return wrapper; } exports.default = createCurry;