diff options
Diffstat (limited to 'node_modules/async-each')
-rw-r--r-- | node_modules/async-each/README.md | 52 | ||||
-rw-r--r-- | node_modules/async-each/index.js | 38 | ||||
-rw-r--r-- | node_modules/async-each/package.json | 63 |
3 files changed, 153 insertions, 0 deletions
diff --git a/node_modules/async-each/README.md b/node_modules/async-each/README.md new file mode 100644 index 0000000..6444d95 --- /dev/null +++ b/node_modules/async-each/README.md @@ -0,0 +1,52 @@ +# async-each + +No-bullshit, ultra-simple, 35-lines-of-code async parallel forEach function for JavaScript. + +We don't need junky 30K async libs. Really. + +For browsers and node.js. + +## Installation +* Just include async-each before your scripts. +* `npm install async-each` if you’re using node.js. + +## Usage + +* `each(array, iterator, callback);` — `Array`, `Function`, `(optional) Function` +* `iterator(item, next)` receives current item and a callback that will mark the item as done. `next` callback receives optional `error, transformedItem` arguments. +* `callback(error, transformedArray)` optionally receives first error and transformed result `Array`. + +```javascript +var each = require('async-each'); +each(['a.js', 'b.js', 'c.js'], fs.readFile, function(error, contents) { + if (error) console.error(error); + console.log('Contents for a, b and c:', contents); +}); + +// Alternatively in browser: +asyncEach(list, fn, callback); +``` + +## License + +The MIT License (MIT) + +Copyright (c) 2016 Paul Miller [(paulmillr.com)](http://paulmillr.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/async-each/index.js b/node_modules/async-each/index.js new file mode 100644 index 0000000..277217d --- /dev/null +++ b/node_modules/async-each/index.js @@ -0,0 +1,38 @@ +// async-each MIT license (by Paul Miller from https://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); diff --git a/node_modules/async-each/package.json b/node_modules/async-each/package.json new file mode 100644 index 0000000..bf5215e --- /dev/null +++ b/node_modules/async-each/package.json @@ -0,0 +1,63 @@ +{ + "_from": "async-each@^1.0.1", + "_id": "async-each@1.0.3", + "_inBundle": false, + "_integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "_location": "/async-each", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "async-each@^1.0.1", + "name": "async-each", + "escapedName": "async-each", + "rawSpec": "^1.0.1", + "saveSpec": null, + "fetchSpec": "^1.0.1" + }, + "_requiredBy": [ + "/chokidar" + ], + "_resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "_shasum": "b727dbf87d7651602f06f4d4ac387f47d91b0cbf", + "_spec": "async-each@^1.0.1", + "_where": "/home/pruss/Dev/3-minute-website/node_modules/chokidar", + "author": { + "name": "Paul Miller", + "url": "https://paulmillr.com/" + }, + "bugs": { + "url": "https://github.com/paulmillr/async-each/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "No-bullshit, ultra-simple, 35-lines-of-code async parallel forEach / map function for JavaScript.", + "files": [ + "index.js" + ], + "homepage": "https://github.com/paulmillr/async-each/", + "keywords": [ + "async", + "forEach", + "each", + "map", + "asynchronous", + "iteration", + "iterate", + "loop", + "parallel", + "concurrent", + "array", + "flow", + "control flow" + ], + "license": "MIT", + "main": "index.js", + "name": "async-each", + "repository": { + "type": "git", + "url": "git://github.com/paulmillr/async-each.git" + }, + "version": "1.0.3" +} |