From aec94514865e6b49e874ea05294e730d9b289d6b Mon Sep 17 00:00:00 2001 From: Danish Arora Date: Wed, 25 Sep 2024 14:50:27 +0530 Subject: [PATCH] chore: add modularity to getting connected peers --- packages/core/src/lib/base_protocol.ts | 11 +++++++---- packages/interfaces/src/protocols.ts | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/core/src/lib/base_protocol.ts b/packages/core/src/lib/base_protocol.ts index 2a86c01494..8ec5b1af9a 100644 --- a/packages/core/src/lib/base_protocol.ts +++ b/packages/core/src/lib/base_protocol.ts @@ -56,15 +56,18 @@ export class BaseProtocol implements IBaseProtocolCore { return getPeersForProtocol(this.components.peerStore, [this.multicodec]); } - public async connectedPeers(): Promise { + public async connectedPeers(withOpenStreams = false): Promise { const peers = await this.allPeers(); return peers.filter((peer) => { const connections = this.components.connectionManager.getConnections( peer.id ); - return connections.some((c) => - c.streams.some((s) => s.protocol === this.multicodec) - ); + if (withOpenStreams) { + return connections.some((c) => + c.streams.some((s) => s.protocol === this.multicodec) + ); + } + return connections.length > 0; }); } diff --git a/packages/interfaces/src/protocols.ts b/packages/interfaces/src/protocols.ts index 74462efa13..32e6c16eb6 100644 --- a/packages/interfaces/src/protocols.ts +++ b/packages/interfaces/src/protocols.ts @@ -17,7 +17,7 @@ export enum Protocols { export type IBaseProtocolCore = { multicodec: string; allPeers: () => Promise; - connectedPeers: () => Promise; + connectedPeers: (withOpenStreams?: boolean) => Promise; addLibp2pEventListener: Libp2p["addEventListener"]; removeLibp2pEventListener: Libp2p["removeEventListener"]; };