From 7d8f5e05b43219b47844ee20e7c3e5be263923e7 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Mon, 27 Oct 2025 14:44:51 -0700 Subject: [PATCH] Remove duplicates from pull --- packages/net/src/diff.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/net/src/diff.ts b/packages/net/src/diff.ts index ac887ae..fd13422 100644 --- a/packages/net/src/diff.ts +++ b/packages/net/src/diff.ts @@ -1,6 +1,6 @@ import {EventEmitter} from "events" import {on, sleep, randomId, groupBy, pushToMapKey, inc, flatten, chunk} from "@welshman/lib" -import {SignedEvent, Filter} from "@welshman/util" +import {SignedEvent, TrustedEvent, Filter} from "@welshman/util" import { RelayMessage, isRelayNegErr, @@ -201,7 +201,8 @@ export const pull = async ({context, ...options}: PullOptions) => { } } - const result: SignedEvent[] = [] + const seen = new Set() + const result: TrustedEvent[] = [] await Promise.all( Array.from(idsByRelay.entries()).map(([relay, allIds]) => { @@ -216,7 +217,12 @@ export const pull = async ({context, ...options}: PullOptions) => { signal: options.signal, autoClose: true, onClose: resolve, - onEvent: event => result.push(event as SignedEvent), + onEvent: event => { + if (!seen.has(event.id)) { + seen.add(event.id) + result.push(event) + } + }, }), ), ),