source: node_modules/es-toolkit/dist/function/partial.mjs@ a762898

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

Added visualizations

  • Property mode set to 100644
File size: 804 bytes
RevLine 
[a762898]1function partial(func, ...partialArgs) {
2 return partialImpl(func, placeholderSymbol, ...partialArgs);
3}
4function partialImpl(func, placeholder, ...partialArgs) {
5 const partialed = function (...providedArgs) {
6 let providedArgsIndex = 0;
7 const substitutedArgs = partialArgs
8 .slice()
9 .map(arg => (arg === placeholder ? providedArgs[providedArgsIndex++] : arg));
10 const remainingArgs = providedArgs.slice(providedArgsIndex);
11 return func.apply(this, substitutedArgs.concat(remainingArgs));
12 };
13 if (func.prototype) {
14 partialed.prototype = Object.create(func.prototype);
15 }
16 return partialed;
17}
18const placeholderSymbol = Symbol('partial.placeholder');
19partial.placeholder = placeholderSymbol;
20
21export { partial, partialImpl };
Note: See TracBrowser for help on using the repository browser.