29 lines
874 B
JavaScript
29 lines
874 B
JavaScript
|
|
import { ary as ary$1 } from "../../function/ary.mjs";
|
||
|
|
//#region src/compat/function/ary.ts
|
||
|
|
/**
|
||
|
|
* Creates a function that invokes func, with up to `n` arguments, ignoring any additional arguments.
|
||
|
|
*
|
||
|
|
* @template F - The type of the function.
|
||
|
|
* @param {F} func - The function to cap arguments for.
|
||
|
|
* @param {number} n - The arity cap.
|
||
|
|
* @param {unknown} guard - The value to guard the arity cap.
|
||
|
|
* @returns {(...args: any[]) => ReturnType<F>} Returns the new capped function.
|
||
|
|
*
|
||
|
|
* @example
|
||
|
|
* function fn(a: number, b: number, c: number) {
|
||
|
|
* return Array.from(arguments);
|
||
|
|
* }
|
||
|
|
*
|
||
|
|
* ary(fn, 0)(1, 2, 3); // []
|
||
|
|
* ary(fn, 1)(1, 2, 3); // [1]
|
||
|
|
* ary(fn, 2)(1, 2, 3); // [1, 2]
|
||
|
|
* ary(fn, 3)(1, 2, 3); // [1, 2, 3]
|
||
|
|
*/
|
||
|
|
function ary(func, n = func.length, guard) {
|
||
|
|
if (guard) n = func.length;
|
||
|
|
if (Number.isNaN(n) || n < 0) n = 0;
|
||
|
|
return ary$1(func, n);
|
||
|
|
}
|
||
|
|
//#endregion
|
||
|
|
export { ary };
|