apr-for-each
Version:
Applies the function iteratee to each item in coll, in parallel.
89 lines (79 loc) • 5.68 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('apr-engine-each'), require('lodash.defaults')) :
typeof define === 'function' && define.amd ? define('apr-for-each', ['exports', 'apr-engine-each', 'lodash.defaults'], factory) :
(factory((global['apr-for-each'] = {}),global.each,global.lodash));
}(this, (function (exports,each,lodash) { 'use strict';
each = each && each.hasOwnProperty('default') ? each['default'] : each;
lodash = lodash && lodash.hasOwnProperty('default') ? lodash['default'] : lodash;
/**
* @kind function
* @name limit
* @memberof for-each
* @param {Array|Object|Iterable} input
* @param {Number} limit
* @param {Function} iteratee
* @returns {Promise}
*/
var limit = function (input, limit, fn, opts) {
return each({
input: input,
fn: fn,
opts: lodash({
limit: limit
}, opts)
});
};
/**
* @kind function
* @name series
* @memberof for-each
* @param {Array|Object|Iterable} input
* @param {Function} iteratee
* @returns {Promise}
*/
var series = function (input, fn, opts) {
return limit(input, 1, fn, opts);
};
/**
* <a id="for-each"></a>
* Applies the function `iteratee` to each item in `coll`, in parallel.
*
* [](https://www.npmjs.com/package/apr-for-each) [](https://www.npmjs.com/package/apr-for-each)
*
* @kind function
* @name for-each
* @param {Array|Object|Iterable} input
* @param {Function} iteratee
* @returns {Promise}
*
* @example
* import awaitify from 'apr-awaitify';
* import forEach from 'apr-for-each';
*
* const writeFile = awaitify(fs.writeFile);
* const files = [
* '/home/.vimrc',
* '/home/.zshrc'
* ];
*
* await forEach(files, async (file) =>
* await writeFile(file, 'boom')
* );
*/
var forEach = function (input, fn, opts) {
return each({
input: input,
fn: fn,
opts: opts
});
};
var series$2 = series;
var limit$2 = limit;
forEach.series = series$2;
forEach.limit = limit$2;
exports['default'] = forEach;
exports.series = series$2;
exports.limit = limit$2;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbIi9Vc2Vycy9yYW1pdG9zL2Rldi9hcHIvcGFja2FnZXMvZm9yLWVhY2gvbGltaXQuanMiLCIvVXNlcnMvcmFtaXRvcy9kZXYvYXByL3BhY2thZ2VzL2Zvci1lYWNoL3Nlcmllcy5qcyIsIi9Vc2Vycy9yYW1pdG9zL2Rldi9hcHIvcGFja2FnZXMvZm9yLWVhY2gvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZGVmYXVsdHMgPSByZXF1aXJlKCdsb2Rhc2guZGVmYXVsdHMnKTtcbmNvbnN0IGVhY2ggPSByZXF1aXJlKCdhcHItZW5naW5lLWVhY2gnKTtcblxuLyoqXG4gKiBAa2luZCBmdW5jdGlvblxuICogQG5hbWUgbGltaXRcbiAqIEBtZW1iZXJvZiBmb3ItZWFjaFxuICogQHBhcmFtIHtBcnJheXxPYmplY3R8SXRlcmFibGV9IGlucHV0XG4gKiBAcGFyYW0ge051bWJlcn0gbGltaXRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlXG4gKiBAcmV0dXJucyB7UHJvbWlzZX1cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSAoaW5wdXQsIGxpbWl0LCBmbiwgb3B0cykgPT5cbiAgZWFjaCh7XG4gICAgaW5wdXQsXG4gICAgZm4sXG4gICAgb3B0czogZGVmYXVsdHMoXG4gICAgICB7XG4gICAgICAgIGxpbWl0XG4gICAgICB9LFxuICAgICAgb3B0c1xuICAgIClcbiAgfSk7XG4iLCJjb25zdCBsaW1pdCA9IHJlcXVpcmUoJy4vbGltaXQnKTtcblxuLyoqXG4gKiBAa2luZCBmdW5jdGlvblxuICogQG5hbWUgc2VyaWVzXG4gKiBAbWVtYmVyb2YgZm9yLWVhY2hcbiAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fEl0ZXJhYmxlfSBpbnB1dFxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWVcbiAqIEByZXR1cm5zIHtQcm9taXNlfVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IChpbnB1dCwgZm4sIG9wdHMpID0+IGxpbWl0KGlucHV0LCAxLCBmbiwgb3B0cyk7XG4iLCJjb25zdCBlYWNoID0gcmVxdWlyZSgnYXByLWVuZ2luZS1lYWNoJyk7XG5cbi8qKlxuICogPGEgaWQ9XCJmb3ItZWFjaFwiPjwvYT5cbiAqIEFwcGxpZXMgdGhlIGZ1bmN0aW9uIGBpdGVyYXRlZWAgdG8gZWFjaCBpdGVtIGluIGBjb2xsYCwgaW4gcGFyYWxsZWwuXG4gKlxuICogWyFbXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L2Fwci1mb3ItZWFjaC5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9hcHItZm9yLWVhY2gpIFshW10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9hcHItZm9yLWVhY2guc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvYXByLWZvci1lYWNoKVxuICpcbiAqIEBraW5kIGZ1bmN0aW9uXG4gKiBAbmFtZSBmb3ItZWFjaFxuICogQHBhcmFtIHtBcnJheXxPYmplY3R8SXRlcmFibGV9IGlucHV0XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZVxuICogQHJldHVybnMge1Byb21pc2V9XG4gKlxuICogQGV4YW1wbGVcbiAqIGltcG9ydCBhd2FpdGlmeSBmcm9tICdhcHItYXdhaXRpZnknO1xuICogaW1wb3J0IGZvckVhY2ggZnJvbSAnYXByLWZvci1lYWNoJztcbiAqXG4gKiBjb25zdCB3cml0ZUZpbGUgPSBhd2FpdGlmeShmcy53cml0ZUZpbGUpO1xuICogY29uc3QgZmlsZXMgPSBbXG4gKiAgICcvaG9tZS8udmltcmMnLFxuICogICAnL2hvbWUvLnpzaHJjJ1xuICogXTtcbiAqXG4gKiBhd2FpdCBmb3JFYWNoKGZpbGVzLCBhc3luYyAoZmlsZSkgPT5cbiAqICAgYXdhaXQgd3JpdGVGaWxlKGZpbGUsICdib29tJylcbiAqICk7XG4gKi9cbm1vZHVsZS5leHBvcnRzID0gKGlucHV0LCBmbiwgb3B0cykgPT5cbiAgZWFjaCh7XG4gICAgaW5wdXQsXG4gICAgZm4sXG4gICAgb3B0c1xuICB9KTtcblxubW9kdWxlLmV4cG9ydHMuc2VyaWVzID0gcmVxdWlyZSgnLi9zZXJpZXMnKTtcbm1vZHVsZS5leHBvcnRzLmxpbWl0ID0gcmVxdWlyZSgnLi9saW1pdCcpO1xuIl0sIm5hbWVzIjpbIm1vZHVsZSIsImlucHV0IiwibGltaXQiLCJmbiIsIm9wdHMiLCJlYWNoIiwiZGVmYXVsdHMiLCJyZXF1aXJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQTs7Ozs7Ozs7O0FBU0FBLFNBQUEsR0FBaUIsVUFBQ0MsS0FBRCxFQUFRQyxLQUFSLEVBQWVDLEVBQWYsRUFBbUJDLElBQW5CO1NBQ2ZDLEtBQUs7Z0JBQUE7VUFBQTtVQUdHQyxPQUNKOztLQURJLEVBSUpGLElBSkk7R0FIUixDQURlO0NBQWpCOztBQ1ZBOzs7Ozs7OztBQVFBSixVQUFBLEdBQWlCLFVBQUNDLEtBQUQsRUFBUUUsRUFBUixFQUFZQyxJQUFaO1NBQXFCRixNQUFNRCxLQUFOLEVBQWEsQ0FBYixFQUFnQkUsRUFBaEIsRUFBb0JDLElBQXBCLENBQXJCO0NBQWpCOztBQ1JBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBCQUosV0FBQSxHQUFpQixVQUFDQyxLQUFELEVBQVFFLEVBQVIsRUFBWUMsSUFBWjtTQUNmQyxLQUFLO2dCQUFBO1VBQUE7O0dBQUwsQ0FEZTtDQUFqQjs7QUFPQUwsWUFBQSxHQUF3Qk8sTUFBeEI7QUFDQVAsV0FBQSxHQUF1Qk8sS0FBdkI7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9