es-toolkit
Version:
A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.
29 lines (28 loc) • 827 B
JavaScript
const require_ary = require("../../function/ary.js");
//#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 func - The function to cap arguments for.
* @param n - The arity cap.
* @param guard - The value to guard the arity cap.
* @returns 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 require_ary.ary(func, n);
}
//#endregion
exports.ary = ary;