Skip to content
This repository was archived by the owner on Feb 12, 2024. It is now read-only.

Commit 3acf9c0

Browse files
style(core): cleanup libp2p commands
1 parent c346c54 commit 3acf9c0

File tree

2 files changed

+26
-30
lines changed

2 files changed

+26
-30
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181
"joi": "^9.0.4",
8282
"libp2p-ipfs": "^0.14.1",
8383
"libp2p-ipfs-browser": "^0.15.1",
84+
"lodash.flatmap": "^4.5.0",
8485
"lodash.get": "^4.4.2",
8586
"lodash.has": "^4.5.2",
8687
"lodash.set": "^4.3.2",

src/core/ipfs/libp2p.js

+25-30
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
const multiaddr = require('multiaddr')
44
const Libp2pNode = require('libp2p-ipfs').Node
55
const promisify = require('promisify-es6')
6+
const flatMap = require('lodash.flatmap')
67

78
const OFFLINE_ERROR = require('../utils').OFFLINE_ERROR
89

@@ -11,21 +12,27 @@ module.exports = function libp2p (self) {
1112

1213
return {
1314
start: (callback) => {
14-
self._libp2pNode = new Libp2pNode(self._peerInfo)
15-
self._libp2pNode.start(() => {
16-
// TODO connect to bootstrap nodes, it will get us more addrs
17-
self._libp2pNode.peerInfo.multiaddrs.forEach((ma) => {
15+
const node = self._libp2pNode = new Libp2pNode(self._peerInfo)
16+
node.start((err) => {
17+
if (err) {
18+
return callback(err)
19+
}
20+
21+
// TODO: connect to bootstrap nodes, it will
22+
// get us more addrs
23+
node.peerInfo.multiaddrs.forEach((ma) => {
1824
console.log('Swarm listening on', ma.toString())
1925
})
2026
callback()
2127
})
2228

23-
self._libp2pNode.discovery.on('peer', (peerInfo) => {
24-
self._libp2pNode.peerBook.put(peerInfo)
25-
self._libp2pNode.dialByPeerInfo(peerInfo, () => {})
29+
node.discovery.on('peer', (peerInfo) => {
30+
node.peerBook.put(peerInfo)
31+
node.dialByPeerInfo(peerInfo, () => {})
2632
})
27-
self._libp2pNode.swarm.on('peer-mux-established', (peerInfo) => {
28-
self._libp2pNode.peerBook.put(peerInfo)
33+
34+
node.swarm.on('peer-mux-established', (peerInfo) => {
35+
node.peerBook.put(peerInfo)
2936
})
3037
},
3138
stop: (callback) => {
@@ -37,35 +44,16 @@ module.exports = function libp2p (self) {
3744
return callback(OFFLINE_ERROR)
3845
}
3946

40-
const peers = self._libp2pNode.peerBook.getAll()
41-
const mas = []
42-
Object
43-
.keys(peers)
44-
.forEach((b58Id) => {
45-
peers[b58Id].multiaddrs.forEach((ma) => {
46-
// TODO this should only print the addr we are using
47-
mas.push(ma)
48-
})
49-
})
50-
47+
const mas = collectAddrs(self._libp2pNode.peerBook)
5148
callback(null, mas)
5249
}),
5350
// all the addrs we know
5451
addrs: promisify((callback) => {
5552
if (!self.isOnline()) {
5653
return callback(OFFLINE_ERROR)
5754
}
58-
const peers = self._libp2pNode.peerBook.getAll()
59-
const mas = []
60-
Object
61-
.keys(peers)
62-
.forEach((b58Id) => {
63-
peers[b58Id].multiaddrs.forEach((ma) => {
64-
// TODO this should only print the addr we are using
65-
mas.push(ma)
66-
})
67-
})
6855

56+
const mas = collectAddrs(self._libp2pNode.peerBook)
6957
callback(null, mas)
7058
}),
7159
localAddrs: promisify((callback) => {
@@ -109,3 +97,10 @@ module.exports = function libp2p (self) {
10997
}
11098
}
11199
}
100+
101+
function collectAddrs (book) {
102+
const peers = book.getAll()
103+
return flatMap(Object.keys(peers), (id) => {
104+
return peers[id].multiaddrs
105+
})
106+
}

0 commit comments

Comments
 (0)