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