maximize-iterator
Advanced tools
+22
-24
| var compat = require('async-compat'); | ||
| function callDone(options, callback) { | ||
| function processDone(err, options, callback) { | ||
| // mark this iteration done | ||
| options.err = options.err || err; | ||
| options.done = true; | ||
| // process done | ||
| if (!options.done || options.counter > 0) return false; | ||
@@ -9,6 +14,14 @@ callback(options.err); | ||
| function processDone(err, options, callback) { | ||
| options.err = options.err || err; | ||
| options.done = true; | ||
| return callDone(options, callback); | ||
| function processResult(err, keep, options, callback) { | ||
| options.counter--; | ||
| if ((err && compat.defaultValue(options.error(err), false)) || (!err && !compat.defaultValue(keep, true))) { | ||
| // mark this iteration done | ||
| options.err = options.err || err; | ||
| options.done = true; | ||
| } | ||
| // process done | ||
| if (!options.done || options.counter > 0) return false; | ||
| callback(options.err); | ||
| return true; | ||
| } | ||
@@ -32,22 +45,7 @@ | ||
| if (err || value === null) { | ||
| options.counter--; | ||
| if (err && compat.defaultValue(options.error(err), false)) return processDone(err, options, callback); | ||
| else if (!err) return processDone(null, options, callback); | ||
| else if (!isProcessing) return processor(); | ||
| return; | ||
| return !processResult(err, false, options, callback) && !isProcessing ? processor() : undefined; | ||
| } | ||
| try { | ||
| compat.asyncFunction(options.each, options.async, value, function (err, keep) { | ||
| options.counter--; | ||
| if (err && compat.defaultValue(options.error(err), false)) return processDone(err, options, callback); | ||
| else if (!err && !compat.defaultValue(keep, true)) return processDone(null, options, callback); | ||
| // eslint-disable-next-line no-useless-return | ||
| else if (callDone(options, callback)) return; | ||
| else if (!isProcessing) return processor(); | ||
| }); | ||
| } catch (err) { | ||
| options.counter--; | ||
| return processDone(err, options, callback); | ||
| } | ||
| compat.asyncFunction(options.each, options.async, value, function (err, keep) { | ||
| return !processResult(err, keep, options, callback) && !isProcessing ? processor() : undefined; | ||
| }); | ||
| }); | ||
@@ -54,0 +52,0 @@ } |
+1
-1
| { | ||
| "name": "maximize-iterator", | ||
| "version": "2.4.0", | ||
| "version": "2.5.0", | ||
| "description": "Maximize the parallel calls of an iterator supporting asyncIterator interface", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
6231
-3.98%91
-3.19%