Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
peers.forEach((peer, i) => {
peer.ipfs = this.props.ipfs
peer.location = {
formatted: ''
}
let id = peer.peer.toB58String()
let location = this.state.locations[id]
if (!location) {
this.state.locations[id] = {}
const addr = peer.addr.toString()
getLocation(this.props.ipfs, [addr], (err, res) => {
if (err) return console.error(err)
// If we've unmounted, abort
if (!this.mounted) return
res = res || {}
peer.location = res
let locations = this.state.locations
locations[id] = res
peers[i] = peer
this.setState({
peers,
locations,
nonce: this.state.nonce++
})
})
}
this.props.ipfs.id((err, peer) => {
if (err || !peer) return console.error(err)
if (!this.mounted) return
this.setState({
node: {
peer,
location: {}
}
})
getLocation(this.props.ipfs, peer.addresses, (err, location) => {
if (err || !location) return console.error(err)
if (!this.mounted) return
this.setState({
node: {
peer,
location
}
})
})
})
}
_handleId (raw) {
this.statsCache.node = raw
this.statsCache.node.location = 'Unknown'
lookupPretty(this.ipfs, raw.addresses, (err, location) => {
if (err) { return }
this.statsCache.node.location = location && location.formatted
this.emit('change', this.statsCache)
})
}
raw.forEach((rawPeer) => {
let peer = {
id: rawPeer.peer.toB58String(),
addr: rawPeer.addr.toString(),
location: {
formatted: 'Unknown'
}
}
if (!this.locationsCache[peer.id]) {
lookupPretty(this.ipfs, [peer.addr], (err, result) => {
if (err) { return }
this.locationsCache[peer.id] = result
})
} else {
peer.location = this.locationsCache[peer.id]
}
peers.push(peer)
})
.then((peer) => {
lookupPretty(ipfs, peer.addresses, (err, location) => {
if (err) throw err
statsCache.location = location && location.formatted
mb.window.webContents.send('stats', statsCache)
})
})
.catch((err) => {