UNPKG

577 BJavaScriptView Raw
1
2
3
4function copy(from, to) {
5 (from || []).forEach(function (e) { to.push(e) })
6}
7
8
9function combine(args) {
10 var plugs = {}
11 var sockets = {}
12 args.forEach(function (mod) {
13 for(var k in mod) {
14 if(Array.isArray(mod[k])) {
15 if(sockets[k])
16 throw new Error('duplicate socket apis: '+k)
17 sockets[k] = mod[k]
18 }
19 else if('function' == typeof mod[k])
20 (plugs[k] = plugs[k] || []).push(mod[k])
21 }
22 })
23
24 for(var k in sockets) copy(plugs[k], sockets[k])
25
26 return {plugs: plugs, sockets: sockets}
27}
28
29
30module.exports = combine