mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-05 17:37:50 +00:00
Move internal modules to “internal” folder.
This commit is contained in:
42
.internal/composeArgsRight.js
Normal file
42
.internal/composeArgsRight.js
Normal file
@@ -0,0 +1,42 @@
|
||||
/* Built-in method references for those with the same name as other `lodash` methods. */
|
||||
const nativeMax = Math.max;
|
||||
|
||||
/**
|
||||
* This function is like `composeArgs` except that the arguments composition
|
||||
* is tailored for `partialRight`.
|
||||
*
|
||||
* @private
|
||||
* @param {Array} args The provided arguments.
|
||||
* @param {Array} partials The arguments to append to those provided.
|
||||
* @param {Array} holders The `partials` placeholder indexes.
|
||||
* @params {boolean} [isCurried] Specify composing for a curried function.
|
||||
* @returns {Array} Returns the new array of composed arguments.
|
||||
*/
|
||||
function composeArgsRight(args, partials, holders, isCurried) {
|
||||
let argsIndex = -1;
|
||||
let holdersIndex = -1;
|
||||
let rightIndex = -1;
|
||||
|
||||
const argsLength = args.length;
|
||||
const holdersLength = holders.length;
|
||||
const rightLength = partials.length;
|
||||
const rangeLength = nativeMax(argsLength - holdersLength, 0);
|
||||
const result = Array(rangeLength + rightLength);
|
||||
const isUncurried = !isCurried;
|
||||
|
||||
while (++argsIndex < rangeLength) {
|
||||
result[argsIndex] = args[argsIndex];
|
||||
}
|
||||
const offset = argsIndex;
|
||||
while (++rightIndex < rightLength) {
|
||||
result[offset + rightIndex] = partials[rightIndex];
|
||||
}
|
||||
while (++holdersIndex < holdersLength) {
|
||||
if (isUncurried || argsIndex < argsLength) {
|
||||
result[offset + holders[holdersIndex]] = args[argsIndex++];
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
export default composeArgsRight;
|
||||
Reference in New Issue
Block a user