From 59be53225e0df062d61c5bce74820df4111c3da0 Mon Sep 17 00:00:00 2001 From: danisharora099 Date: Fri, 15 Sep 2023 17:02:31 +0530 Subject: [PATCH] improve readability --- examples/web-chat/src/hooks.ts | 13 ++++--------- examples/web-chat/src/utils.ts | 12 ++++++++++++ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/examples/web-chat/src/hooks.ts b/examples/web-chat/src/hooks.ts index d70c2f7..73d1dc8 100644 --- a/examples/web-chat/src/hooks.ts +++ b/examples/web-chat/src/hooks.ts @@ -12,6 +12,7 @@ import type { UsePeersResults, } from "./types"; import { OrderedSet } from "./ordered_array"; +import { getPeerIdsForProtocol } from "./utils"; export const usePersistentNick = (): [ string, @@ -194,15 +195,9 @@ export const usePeers = (params: UsePeersParams): UsePeersResults => { setPeers({ allConnected: peers.map((p) => p.id), - storePeers: peers - .filter((p) => p.protocols.includes(node.store?.multicodec || "")) - .map((p) => p.id), - filterPeers: peers - .filter((p) => p.protocols.includes(node.filter?.multicodec || "")) - .map((p) => p.id), // hardcoding codec since we don't export it currently - lightPushPeers: peers - .filter((p) => p.protocols.includes(node.lightPush?.multicodec || "")) - .map((p) => p.id), + storePeers: getPeerIdsForProtocol(node.store, peers), + filterPeers: getPeerIdsForProtocol(node.filter, peers), + lightPushPeers: getPeerIdsForProtocol(node.lightPush, peers), }); }; diff --git a/examples/web-chat/src/utils.ts b/examples/web-chat/src/utils.ts index ed54a12..3a3eef2 100644 --- a/examples/web-chat/src/utils.ts +++ b/examples/web-chat/src/utils.ts @@ -1,4 +1,5 @@ import type { Peer } from "@libp2p/interface-peer-store"; +import { IFilter, ILightPush, IStore } from "@waku/interfaces"; export async function handleCatch( promise?: Promise @@ -13,3 +14,14 @@ export async function handleCatch( return undefined; } } + +export function getPeerIdsForProtocol( + protocol: IStore | ILightPush | IFilter | undefined, + peers: Peer[] +) { + return protocol + ? peers + .filter((p) => p.protocols.includes(protocol.multicodec)) + .map((p) => p.id) + : []; +}