js-libp2p/.aegir.js

88 lines
1.9 KiB
JavaScript
Raw Normal View History

'use strict'
const pull = require('pull-stream')
const parallel = require('async/parallel')
const WebSocketStarRendezvous = require('libp2p-websocket-star-rendezvous')
const sigServer = require('libp2p-webrtc-star/src/sig-server')
const Node = require('./test/utils/bundle-nodejs.js')
2019-02-25 13:44:56 +01:00
const {
getPeerRelay,
WRTC_RENDEZVOUS_MULTIADDR,
WS_RENDEZVOUS_MULTIADDR
} = require('./test/utils/constants')
let wrtcRendezvous
let wsRendezvous
let node
const before = (done) => {
parallel([
(cb) => {
2017-12-01 09:19:44 +00:00
sigServer.start({
2019-02-25 13:44:56 +01:00
port: WRTC_RENDEZVOUS_MULTIADDR.nodeAddress().port
2017-12-01 09:19:44 +00:00
// cryptoChallenge: true TODO: needs https://github.com/libp2p/js-libp2p-webrtc-star/issues/128
}, (err, server) => {
if (err) {
return cb(err)
}
wrtcRendezvous = server
cb()
})
},
(cb) => {
WebSocketStarRendezvous.start({
2019-02-25 13:44:56 +01:00
port: WS_RENDEZVOUS_MULTIADDR.nodeAddress().port,
refreshPeerListIntervalMS: 1000,
strictMultiaddr: false,
2017-12-01 09:19:44 +00:00
cryptoChallenge: true
}, (err, _server) => {
if (err) {
return cb(err)
}
wsRendezvous = _server
cb()
})
},
(cb) => {
2019-02-25 13:44:56 +01:00
getPeerRelay((err, peerInfo) => {
if (err) {
return done(err)
}
node = new Node({
2019-02-25 13:44:56 +01:00
peerInfo,
config: {
relay: {
enabled: true,
hop: {
enabled: true,
active: true
}
}
}
})
2019-02-25 13:44:56 +01:00
node.handle('/echo/1.0.0', (protocol, conn) => pull(conn, conn))
node.start(cb)
})
}
], done)
}
const after = (done) => {
setTimeout(() =>
parallel(
[node, wrtcRendezvous, wsRendezvous].map((s) => (cb) => s.stop(cb)),
done),
2000)
}
module.exports = {
bundlesize: { maxSize: '217kB' },
hooks: {
pre: before,
post: after
}
}