maximize-iterator
Version:
Maximize the parallel calls of an iterator supporting asyncIterator interface
44 lines • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return worker;
}
});
var _iteratornextcallback = /*#__PURE__*/ _interop_require_default(require("iterator-next-callback"));
var _createProcessorts = /*#__PURE__*/ _interop_require_default(require("./createProcessor.js"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
var DEFAULT_CONCURRENCY = 4096;
var DEFAULT_LIMIT = Infinity;
function worker(iterator, each, options_, callback) {
var options = {
callbacks: options_.callbacks,
concurrency: options_.concurrency || DEFAULT_CONCURRENCY,
limit: options_.limit || DEFAULT_LIMIT,
// default is exit on error
error: options_.error || function() {
return true;
},
each: each,
canProcess: options_.canProcess || function() {
return true;
},
total: 0,
counter: 0,
done: false
};
var processor = (0, _createProcessorts.default)((0, _iteratornextcallback.default)(iterator), options, function(err) {
options = null;
processor = null;
callback(err);
});
processor();
}
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }