@newdash/newdash
Version:
javascript/typescript utility library
36 lines (35 loc) • 1.62 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.overArgs = void 0;
const baseRest_1 = __importDefault(require("./.internal/baseRest"));
const isArray_1 = __importDefault(require("./isArray"));
const getIteratee_1 = __importDefault(require("./.internal/getIteratee"));
const baseUnary_1 = __importDefault(require("./.internal/baseUnary"));
const arrayMap_1 = __importDefault(require("./.internal/arrayMap"));
const baseFlatten_1 = __importDefault(require("./.internal/baseFlatten"));
const apply_1 = __importDefault(require("./.internal/apply"));
/**
* @ignore
*/
const internalOverArgs = (0, baseRest_1.default)((func, transforms) => {
transforms = (transforms.length == 1 && (0, isArray_1.default)(transforms[0]))
? (0, arrayMap_1.default)(transforms[0], (0, baseUnary_1.default)((0, getIteratee_1.default)()))
: (0, arrayMap_1.default)((0, baseFlatten_1.default)(transforms, 1), (0, baseUnary_1.default)((0, getIteratee_1.default)()));
const funcsLength = transforms.length;
return (0, baseRest_1.default)(function (args) {
let index = -1;
const length = Math.min(args.length, funcsLength);
while (++index < length) {
args[index] = transforms[index].call(this, args[index]);
}
return (0, apply_1.default)(func, this, args);
});
});
function overArgs(...args) {
return internalOverArgs(...args);
}
exports.overArgs = overArgs;
exports.default = overArgs;