From 2dadcce48f680e7e38b487e1804e6e2820821266 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Tue, 1 Apr 2025 10:56:17 -0700 Subject: [PATCH] Add check for deleted events in request --- packages/net/src/request.ts | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/packages/net/src/request.ts b/packages/net/src/request.ts index fb66a67..e6edeed 100644 --- a/packages/net/src/request.ts +++ b/packages/net/src/request.ts @@ -1,5 +1,5 @@ import {EventEmitter} from "events" -import {on, call, randomId, yieldThread, pushToMapKey, batcher} from "@welshman/lib" +import {on, always, call, randomId, yieldThread, pushToMapKey, batcher} from "@welshman/lib" import { Filter, unionFilters, @@ -21,6 +21,7 @@ export enum RequestEvent { Eose = "request:event:eose", Event = "request:event:event", Filtered = "request:event:filtered", + Deleted = "request:event:deleted", Invalid = "request:event:invalid", } @@ -28,6 +29,7 @@ export enum RequestEvent { export type SingleRequestEvents = { [RequestEvent.Event]: (event: TrustedEvent) => void + [RequestEvent.Deleted]: (event: any) => void [RequestEvent.Invalid]: (event: any) => void [RequestEvent.Filtered]: (event: TrustedEvent) => void [RequestEvent.Duplicate]: (event: TrustedEvent) => void @@ -43,7 +45,8 @@ export type SingleRequestOptions = { timeout?: number tracker?: Tracker autoClose?: boolean - verifyEvent?: (event: any) => boolean + isEventValid?: (event: any, url: string) => boolean + isEventDeleted?: (event: any, url: string) => boolean } export class SingleRequest extends (EventEmitter as new () => TypedEmitter) { @@ -56,8 +59,8 @@ export class SingleRequest extends (EventEmitter as new () => TypedEmitter TypedEmitter TypedEmitter void + [RequestEvent.Deleted]: (event: TrustedEvent, url: string) => void [RequestEvent.Invalid]: (event: TrustedEvent, url: string) => void [RequestEvent.Filtered]: (event: TrustedEvent, url: string) => void [RequestEvent.Duplicate]: (event: TrustedEvent, url: string) => void @@ -165,6 +171,10 @@ export class MultiRequest extends (EventEmitter as new () => TypedEmitter { + this.emit(RequestEvent.Deleted, event, relay) + }) + req.on(RequestEvent.Invalid, (event: TrustedEvent) => { this.emit(RequestEvent.Invalid, event, relay) })