source: node_modules/es-toolkit/dist/compat/function/overArgs.js

Last change on this file was a762898, checked in by istevanoska <ilinastevanoska@…>, 5 months ago

Added visualizations

  • Property mode set to 100644
File size: 807 bytes
RevLine 
[a762898]1'use strict';
2
3Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
5const identity = require('../../function/identity.js');
6const iteratee = require('../util/iteratee.js');
7
8function overArgs(func, ..._transforms) {
9 if (typeof func !== 'function') {
10 throw new TypeError('Expected a function');
11 }
12 const transforms = _transforms.flat();
13 return function (...args) {
14 const length = Math.min(args.length, transforms.length);
15 const transformedArgs = [...args];
16 for (let i = 0; i < length; i++) {
17 const transform = iteratee.iteratee(transforms[i] ?? identity.identity);
18 transformedArgs[i] = transform.call(this, args[i]);
19 }
20 return func.apply(this, transformedArgs);
21 };
22}
23
24exports.overArgs = overArgs;
Note: See TracBrowser for help on using the repository browser.