@newdash/newdash
Version:
javascript/typescript utility library
39 lines (38 loc) • 1.11 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ary = void 0;
const createWrap_1 = __importDefault(require("./.internal/createWrap"));
/**
* @ignore
* @private
* @internal
*/
const WRAP_ARY_FLAG = 128;
/**
* Creates a function that invokes `func`, with up to `n` arguments,
* ignoring any additional arguments.
*
* @since 5.5.0
* @category Function
* @param func The function to cap arguments for.
* @param n The arity cap.
* @param guard Enables use as an iteratee for methods like `map`.
* @returns Returns the new capped function.
* @example
*
* ```js
* map(['6', '8', '10'], ary(parseInt, 1));
* // => [6, 8, 10]
* ```
*/
function ary(func, n = func.length, guard) {
n = guard ? undefined : n;
n = (func && n == null) ? func.length : n;
// @ts-ignore
return (0, createWrap_1.default)(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);
}
exports.ary = ary;
exports.default = ary;