aboutsummaryrefslogtreecommitdiff
path: root/node_modules/async-each/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/async-each/index.js')
-rw-r--r--node_modules/async-each/index.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/node_modules/async-each/index.js b/node_modules/async-each/index.js
new file mode 100644
index 0000000..1c51c95
--- /dev/null
+++ b/node_modules/async-each/index.js
@@ -0,0 +1,38 @@
+// async-each MIT license (by Paul Miller from http://paulmillr.com).
+(function(globals) {
+ 'use strict';
+ var each = function(items, next, callback) {
+ if (!Array.isArray(items)) throw new TypeError('each() expects array as first argument');
+ if (typeof next !== 'function') throw new TypeError('each() expects function as second argument');
+ if (typeof callback !== 'function') callback = Function.prototype; // no-op
+
+ if (items.length === 0) return callback(undefined, items);
+
+ var transformed = new Array(items.length);
+ var count = 0;
+ var returned = false;
+
+ items.forEach(function(item, index) {
+ next(item, function(error, transformedItem) {
+ if (returned) return;
+ if (error) {
+ returned = true;
+ return callback(error);
+ }
+ transformed[index] = transformedItem;
+ count += 1;
+ if (count === items.length) return callback(undefined, transformed);
+ });
+ });
+ };
+
+ if (typeof define !== 'undefined' && define.amd) {
+ define([], function() {
+ return each;
+ }); // RequireJS
+ } else if (typeof module !== 'undefined' && module.exports) {
+ module.exports = each; // CommonJS
+ } else {
+ globals.asyncEach = each; // <script>
+ }
+})(this);