summaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/node_modules/slide/lib/chain.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/deps/npm/node_modules/slide/lib/chain.js')
-rw-r--r--deps/node/deps/npm/node_modules/slide/lib/chain.js20
1 files changed, 20 insertions, 0 deletions
diff --git a/deps/node/deps/npm/node_modules/slide/lib/chain.js b/deps/node/deps/npm/node_modules/slide/lib/chain.js
new file mode 100644
index 00000000..17b37114
--- /dev/null
+++ b/deps/node/deps/npm/node_modules/slide/lib/chain.js
@@ -0,0 +1,20 @@
+module.exports = chain
+var bindActor = require("./bind-actor.js")
+chain.first = {} ; chain.last = {}
+function chain (things, cb) {
+ var res = []
+ ;(function LOOP (i, len) {
+ if (i >= len) return cb(null,res)
+ if (Array.isArray(things[i]))
+ things[i] = bindActor.apply(null,
+ things[i].map(function(i){
+ return (i===chain.first) ? res[0]
+ : (i===chain.last)
+ ? res[res.length - 1] : i }))
+ if (!things[i]) return LOOP(i + 1, len)
+ things[i](function (er, data) {
+ if (er) return cb(er, res)
+ if (data !== undefined) res = res.concat(data)
+ LOOP(i + 1, len)
+ })
+ })(0, things.length) }