This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
660 B
20 lines
660 B
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) }
|
|
|