From de98e0b232509d5f40c135d540a70e415272ff85 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 3 May 2017 15:35:00 +0200 Subject: node_modules --- node_modules/enhanced-resolve/lib/forEachBail.js | 34 ++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 node_modules/enhanced-resolve/lib/forEachBail.js (limited to 'node_modules/enhanced-resolve/lib/forEachBail.js') diff --git a/node_modules/enhanced-resolve/lib/forEachBail.js b/node_modules/enhanced-resolve/lib/forEachBail.js new file mode 100644 index 000000000..ce0893160 --- /dev/null +++ b/node_modules/enhanced-resolve/lib/forEachBail.js @@ -0,0 +1,34 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +module.exports = function forEachBail(array, iterator, callback) { + if(array.length === 0) return callback(); + var currentPos = array.length; + var currentResult; + var done = []; + for(var i = 0; i < array.length; i++) { + var itCb = createIteratorCallback(i); + iterator(array[i], itCb); + if(currentPos === 0) break; + } + + function createIteratorCallback(i) { + return function() { + if(i >= currentPos) return; // ignore + var args = Array.prototype.slice.call(arguments); + done.push(i); + if(args.length > 0) { + currentPos = i + 1; + done = done.filter(function(item) { + return item <= i; + }); + currentResult = args; + } + if(done.length === currentPos) { + callback.apply(null, currentResult); + currentPos = 0; + } + }; + } +}; -- cgit v1.2.3