summaryrefslogtreecommitdiff
path: root/node_modules/a-sync-waterfall/README.md
diff options
context:
space:
mode:
authorShipwreckt <me@shipwreckt.co.uk>2025-10-31 20:02:14 +0000
committerShipwreckt <me@shipwreckt.co.uk>2025-10-31 20:02:14 +0000
commit7a52ddeba2a68388b544f529d2d92104420f77b0 (patch)
tree15ddd47457a2cb4a96060747437d36474e4f6b4e /node_modules/a-sync-waterfall/README.md
parent53d6ae2b5568437afa5e4995580a3fb679b7b91b (diff)
Changed from static to 11ty!
Diffstat (limited to 'node_modules/a-sync-waterfall/README.md')
-rw-r--r--node_modules/a-sync-waterfall/README.md95
1 files changed, 95 insertions, 0 deletions
diff --git a/node_modules/a-sync-waterfall/README.md b/node_modules/a-sync-waterfall/README.md
new file mode 100644
index 0000000..e3d5afe
--- /dev/null
+++ b/node_modules/a-sync-waterfall/README.md
@@ -0,0 +1,95 @@
+# a-sync-waterfall
+
+Simple, isolated sync/async waterfall module for JavaScript.
+
+Runs an array of functions in series, each passing their results to the next in
+the array. However, if any of the functions pass an error to the callback, the
+next function is not executed and the main callback is immediately called with
+the error.
+
+For browsers and node.js.
+
+## Installation
+* Just include a-sync-waterfall before your scripts.
+* `npm install a-sync-waterfall` if you’re using node.js.
+
+
+## Usage
+
+* `waterfall(tasks, optionalCallback, forceAsync);`
+* **tasks** - An array of functions to run, each function is passed a
+`callback(err, result1, result2, ...)` it must call on completion. The first
+argument is an error (which can be null) and any further arguments will be
+passed as arguments in order to the next task.
+* **optionalCallback** - An optional callback to run once all the functions have
+completed. This will be passed the results of the last task's callback.
+* **forceAsync** An optional flag that force tasks run asynchronously even if they are sync.
+
+##### Node.js:
+
+```javascript
+var waterfall = require('a-sync-waterfall');
+waterfall(tasks, callback);
+```
+
+##### Browser:
+
+```javascript
+var waterfall = require('a-sync-waterfall');
+waterfall(tasks, callback);
+
+// Default:
+window.waterfall(tasks, callback);
+```
+
+##### Tasks as Array of Functions
+
+```javascript
+waterfall([
+ function(callback){
+ callback(null, 'one', 'two');
+ },
+ function(arg1, arg2, callback){
+ callback(null, 'three');
+ },
+ function(arg1, callback){
+ // arg1 now equals 'three'
+ callback(null, 'done');
+ }
+], function (err, result) {
+ // result now equals 'done'
+});
+```
+
+##### Derive Tasks from an Array.map
+
+```javascript
+/* basic - no arguments */
+waterfall(myArray.map(function (arrayItem) {
+ return function (nextCallback) {
+ // same execution for each item, call the next one when done
+ doAsyncThingsWith(arrayItem, nextCallback);
+}}));
+
+/* with arguments, initializer function, and final callback */
+waterfall([function initializer (firstMapFunction) {
+ firstMapFunction(null, initialValue);
+ }].concat(myArray.map(function (arrayItem) {
+ return function (lastItemResult, nextCallback) {
+ // same execution for each item in the array
+ var itemResult = doThingsWith(arrayItem, lastItemResult);
+ // results carried along from each to the next
+ nextCallback(null, itemResult);
+}})), function (err, finalResult) {
+ // final callback
+});
+```
+
+## Acknowledgements
+Hat tip to [Caolan McMahon](https://github.com/caolan) and
+[Paul Miller](https://github.com/paulmillr), whose prior contributions this is
+based upon.
+Also [Elan Shanker](https://github.com/es128) from which this rep is forked
+
+## License
+[MIT](https://raw.github.com/hydiak/a-sync-waterfall/master/LICENSE)