Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
chain-able-deps / dist / fp / arity.js
Size: Mime:
"use strict";
/* eslint complexity: "OFF" */
/* eslint consistent-return: "OFF" */
/* eslint max-len: "OFF" */
/* eslint no-unused-vars: "OFF" */
Object.defineProperty(exports, "__esModule", { value: true });
/* istanbul ignore next: metadata, one is covered, all are covered */
/* prettier-ignore */
/**
 * @desc just for `.length` of a function, to know how many args
 * @memberOf fp
 *
 * @since 5.0.0
 * @param n number of arguments
 * @param fn function to wrap
 * @return function with params
 *
 * @tests fp/arity
 *
 * {@link https://github.com/blakeembrey/nary nary}
 * {@link https://www.npmjs.com/package/util-arity util-arity}
 * {@link https://docs.microsoft.com/en-us/scripting/javascript/reference/length-property-function-javascript microsoft-func-length}
 * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/arity mozilla-func-arity}
 * @see {@link mozilla-func-arity}
 * @see {@link microsoft-func-length}
 * @see {@link util-arity}
 * @see {@link nary}
 *
 * @NOTE keeping this means uglify `keep_func_args: false`
 *
 * @example
 *
 *  const wan = one => console.log(one)
 *  arity(1, wan)
 *  => function(one => wan(one))
 *
 *  const five = ($1, $2, $3, $4, $5) => console.log.apply(console, arguments)
 *  arity(5, five).length
 *  //=> 5
 *
 */
function _arity(n, fn) {
    // if (n === 0 || n > 5)
    if (n === 1)
        return function ($0) { return fn.apply(this, arguments); };
    else if (n === 2)
        return function ($0, $1) { return fn.apply(this, arguments); };
    else if (n === 3)
        return function ($0, $1, $2) { return fn.apply(this, arguments); };
    else if (n === 4)
        return function ($0, $1, $2, $3) { return fn.apply(this, arguments); };
    else if (n === 5)
        return function ($0, $1, $2, $3, $4) { return fn.apply(this, arguments); };
    else
        return function () { return fn.apply(this, arguments); };
    // @NOTE ignoring
    // else if (n === 6) return function(a0, a1, a2, a3, a4, a5) { return fn.apply(this, arguments) }
    // else if (n === 7) return function(a0, a1, a2, a3, a4, a5, a6) { return fn.apply(this, arguments) }
    // else if (n === 8) return function(a0, a1, a2, a3, a4, a5, a6, a7) { return fn.apply(this, arguments) }
    // else if (n === 9) return function(a0, a1, a2, a3, a4, a5, a6, a7, a8) { return fn.apply(this, arguments) }
    // else if (n === 10) return function(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) { return fn.apply(this, arguments) }
}
exports.default = _arity;
//# sourceMappingURL=arity.js.map