source: node_modules/es-toolkit/dist/function/partial.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: 922 bytes
Line 
1'use strict';
2
3Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
5function partial(func, ...partialArgs) {
6 return partialImpl(func, placeholderSymbol, ...partialArgs);
7}
8function partialImpl(func, placeholder, ...partialArgs) {
9 const partialed = function (...providedArgs) {
10 let providedArgsIndex = 0;
11 const substitutedArgs = partialArgs
12 .slice()
13 .map(arg => (arg === placeholder ? providedArgs[providedArgsIndex++] : arg));
14 const remainingArgs = providedArgs.slice(providedArgsIndex);
15 return func.apply(this, substitutedArgs.concat(remainingArgs));
16 };
17 if (func.prototype) {
18 partialed.prototype = Object.create(func.prototype);
19 }
20 return partialed;
21}
22const placeholderSymbol = Symbol('partial.placeholder');
23partial.placeholder = placeholderSymbol;
24
25exports.partial = partial;
26exports.partialImpl = partialImpl;
Note: See TracBrowser for help on using the repository browser.