| 'use strict'; | 
 |  | 
 | Object.defineProperty(exports, "__esModule", { | 
 |     value: true | 
 | }); | 
 |  | 
 | exports.default = function (fn /*, ...args*/) { | 
 |     var args = (0, _slice2.default)(arguments, 1); | 
 |     return function () /*callArgs*/{ | 
 |         var callArgs = (0, _slice2.default)(arguments); | 
 |         return fn.apply(null, args.concat(callArgs)); | 
 |     }; | 
 | }; | 
 |  | 
 | var _slice = require('./internal/slice'); | 
 |  | 
 | var _slice2 = _interopRequireDefault(_slice); | 
 |  | 
 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | 
 |  | 
 | ; | 
 |  | 
 | /** | 
 |  * Creates a continuation function with some arguments already applied. | 
 |  * | 
 |  * Useful as a shorthand when combined with other control flow functions. Any | 
 |  * arguments passed to the returned function are added to the arguments | 
 |  * originally passed to apply. | 
 |  * | 
 |  * @name apply | 
 |  * @static | 
 |  * @memberOf module:Utils | 
 |  * @method | 
 |  * @category Util | 
 |  * @param {Function} fn - The function you want to eventually apply all | 
 |  * arguments to. Invokes with (arguments...). | 
 |  * @param {...*} arguments... - Any number of arguments to automatically apply | 
 |  * when the continuation is called. | 
 |  * @returns {Function} the partially-applied function | 
 |  * @example | 
 |  * | 
 |  * // using apply | 
 |  * async.parallel([ | 
 |  *     async.apply(fs.writeFile, 'testfile1', 'test1'), | 
 |  *     async.apply(fs.writeFile, 'testfile2', 'test2') | 
 |  * ]); | 
 |  * | 
 |  * | 
 |  * // the same process without using apply | 
 |  * async.parallel([ | 
 |  *     function(callback) { | 
 |  *         fs.writeFile('testfile1', 'test1', callback); | 
 |  *     }, | 
 |  *     function(callback) { | 
 |  *         fs.writeFile('testfile2', 'test2', callback); | 
 |  *     } | 
 |  * ]); | 
 |  * | 
 |  * // It's possible to pass any number of additional arguments when calling the | 
 |  * // continuation: | 
 |  * | 
 |  * node> var fn = async.apply(sys.puts, 'one'); | 
 |  * node> fn('two', 'three'); | 
 |  * one | 
 |  * two | 
 |  * three | 
 |  */ | 
 | module.exports = exports['default']; |