time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

wrap.js (871B)


      1 var castFunction = require('./_castFunction'),
      2     partial = require('./partial');
      3 
      4 /**
      5  * Creates a function that provides `value` to `wrapper` as its first
      6  * argument. Any additional arguments provided to the function are appended
      7  * to those provided to the `wrapper`. The wrapper is invoked with the `this`
      8  * binding of the created function.
      9  *
     10  * @static
     11  * @memberOf _
     12  * @since 0.1.0
     13  * @category Function
     14  * @param {*} value The value to wrap.
     15  * @param {Function} [wrapper=identity] The wrapper function.
     16  * @returns {Function} Returns the new function.
     17  * @example
     18  *
     19  * var p = _.wrap(_.escape, function(func, text) {
     20  *   return '<p>' + func(text) + '</p>';
     21  * });
     22  *
     23  * p('fred, barney, & pebbles');
     24  * // => '<p>fred, barney, &amp; pebbles</p>'
     25  */
     26 function wrap(value, wrapper) {
     27   return partial(castFunction(wrapper), value);
     28 }
     29 
     30 module.exports = wrap;