From 11ed6bd14c10d6e582c688d822fa72178c20e621 Mon Sep 17 00:00:00 2001 From: Vasco Santos Date: Mon, 2 Dec 2019 18:13:14 +0100 Subject: [PATCH] feat: support peer-id instances in peer store operations (#491) --- src/peer-store/index.js | 22 +++++++++++++++++++--- test/peer-store/peer-store.spec.js | 4 ++-- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/peer-store/index.js b/src/peer-store/index.js index 5f52f279dc..559335a018 100644 --- a/src/peer-store/index.js +++ b/src/peer-store/index.js @@ -7,6 +7,7 @@ log.error = debug('libp2p:peer-store:error') const { EventEmitter } = require('events') +const PeerId = require('peer-id') const PeerInfo = require('peer-info') /** @@ -160,10 +161,15 @@ class PeerStore extends EventEmitter { /** * Get the info to the given id. - * @param {string} peerId b58str id + * @param {PeerId|string} peerId b58str id * @returns {PeerInfo} */ get (peerId) { + // TODO: deprecate this and just accept `PeerId` instances + if (PeerId.isPeerId(peerId)) { + peerId = peerId.toB58String() + } + const peerInfo = this.peers.get(peerId) if (peerInfo) { @@ -175,19 +181,29 @@ class PeerStore extends EventEmitter { /** * Has the info to the given id. - * @param {string} peerId b58str id + * @param {PeerId|string} peerId b58str id * @returns {boolean} */ has (peerId) { + // TODO: deprecate this and just accept `PeerId` instances + if (PeerId.isPeerId(peerId)) { + peerId = peerId.toB58String() + } + return this.peers.has(peerId) } /** * Removes the Peer with the matching `peerId` from the PeerStore - * @param {string} peerId b58str id + * @param {PeerId|string} peerId b58str id * @returns {boolean} true if found and removed */ remove (peerId) { + // TODO: deprecate this and just accept `PeerId` instances + if (PeerId.isPeerId(peerId)) { + peerId = peerId.toB58String() + } + return this.peers.delete(peerId) } diff --git a/test/peer-store/peer-store.spec.js b/test/peer-store/peer-store.spec.js index 816773e8a3..08da6e12bf 100644 --- a/test/peer-store/peer-store.spec.js +++ b/test/peer-store/peer-store.spec.js @@ -138,7 +138,7 @@ describe('peer-store', () => { it('should be able to retrieve a peer from store through its b58str id', async () => { const [peerInfo] = await peerUtils.createPeerInfo() - const id = peerInfo.id.toB58String() + const id = peerInfo.id let retrievedPeer = peerStore.get(id) expect(retrievedPeer).to.not.exist() @@ -155,7 +155,7 @@ describe('peer-store', () => { it('should be able to remove a peer from store through its b58str id', async () => { const [peerInfo] = await peerUtils.createPeerInfo() - const id = peerInfo.id.toB58String() + const id = peerInfo.id let removed = peerStore.remove(id) expect(removed).to.eql(false)