Sha256: c0a23b3547dba9c60a5957310f6194756ac525cf472c384383c76af786cced74

Contents?: true

Size: 1.58 KB

Versions: 276

Compression:

Stored size: 1.58 KB

Contents

var apply = require('./_apply'),
    arrayMap = require('./_arrayMap'),
    baseFlatten = require('./_baseFlatten'),
    baseIteratee = require('./_baseIteratee'),
    baseRest = require('./_baseRest'),
    baseUnary = require('./_baseUnary'),
    castRest = require('./_castRest'),
    isArray = require('./isArray');

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeMin = Math.min;

/**
 * Creates a function that invokes `func` with its arguments transformed.
 *
 * @static
 * @since 4.0.0
 * @memberOf _
 * @category Function
 * @param {Function} func The function to wrap.
 * @param {...(Function|Function[])} [transforms=[_.identity]]
 *  The argument transforms.
 * @returns {Function} Returns the new function.
 * @example
 *
 * function doubled(n) {
 *   return n * 2;
 * }
 *
 * function square(n) {
 *   return n * n;
 * }
 *
 * var func = _.overArgs(function(x, y) {
 *   return [x, y];
 * }, [square, doubled]);
 *
 * func(9, 3);
 * // => [81, 6]
 *
 * func(10, 5);
 * // => [100, 10]
 */
var overArgs = castRest(function(func, transforms) {
  transforms = (transforms.length == 1 && isArray(transforms[0]))
    ? arrayMap(transforms[0], baseUnary(baseIteratee))
    : arrayMap(baseFlatten(transforms, 1), baseUnary(baseIteratee));

  var funcsLength = transforms.length;
  return baseRest(function(args) {
    var index = -1,
        length = nativeMin(args.length, funcsLength);

    while (++index < length) {
      args[index] = transforms[index].call(this, args[index]);
    }
    return apply(func, this, args);
  });
});

module.exports = overArgs;

Version data entries

276 entries across 274 versions & 30 rubygems

Version Path
rapid_stack-0.2.0 templates/frontend/node_modules/lodash/overArgs.js
rapid_stack-0.1.1 templates/FrontEnd/node_modules/lodash/overArgs.js
rapid_stack-0.1.0 templates/FrontEnd/node_modules/lodash/overArgs.js
immosquare-cleaner-0.1.60 node_modules/lodash/overArgs.js
immosquare-cleaner-0.1.59 node_modules/lodash/overArgs.js
immosquare-cleaner-0.1.58 node_modules/lodash/overArgs.js
immosquare-cleaner-0.1.57 node_modules/lodash/overArgs.js
immosquare-cleaner-0.1.56 node_modules/lodash/overArgs.js
immosquare-cleaner-0.1.55 node_modules/lodash/overArgs.js
immosquare-cleaner-0.1.54 node_modules/lodash/overArgs.js
immosquare-cleaner-0.1.53 node_modules/lodash/overArgs.js
immosquare-cleaner-0.1.52 node_modules/lodash/overArgs.js
trusty-cms-6.3.1 node_modules/lodash/overArgs.js
immosquare-cleaner-0.1.51 node_modules/lodash/overArgs.js
boring_generators-0.15.0 tmp/templates/app_template/node_modules/lodash/overArgs.js
clapton-0.0.26 lib/clapton/javascripts/node_modules/lodash/overArgs.js
clapton-0.0.25 lib/clapton/javascripts/node_modules/lodash/overArgs.js
immosquare-cleaner-0.1.50 node_modules/lodash/overArgs.js
clapton-0.0.24 lib/clapton/javascripts/node_modules/lodash/overArgs.js
clapton-0.0.23 lib/clapton/javascripts/node_modules/lodash/overArgs.js