From e0a39e5630516dcf8456e7232ca2a5b3ff5e8eaf Mon Sep 17 00:00:00 2001 From: Cooldude2606 <25043174+Cooldude2606@users.noreply.github.com> Date: Thu, 28 May 2026 00:39:24 +0100 Subject: [PATCH] Add option for events to define `get filters` --- packages/lib/src/subscriptions.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/lib/src/subscriptions.ts b/packages/lib/src/subscriptions.ts index ef391494..7b53289e 100644 --- a/packages/lib/src/subscriptions.ts +++ b/packages/lib/src/subscriptions.ts @@ -265,7 +265,7 @@ export class SubscriptionController { * Broadcast an event to all subscribers of that event * @param event - Event to broadcast. */ - broadcast(event: Event & { filters?: string | string[] }, filters?: string | string[]) { + broadcast>(event: T & { filters?: string | string[] }, filters?: string | string[]) { const entry = Link._eventsByClass.get(event.constructor); if (!entry) { throw new Error(`Unregistered Event class ${event.constructor.name}`); @@ -275,7 +275,7 @@ export class SubscriptionController { throw new Error(`Event ${entry.name} is not a registered as subscribable`); } - const broadcastFilters = SubscriptionFilters.fromShorthand(filters); + const broadcastFilters = SubscriptionFilters.fromShorthand(filters ?? event.filters); for (const [addressIndex, subscriber] of eventData.subscriptions) { if ((subscriber.link.connector as WebSocketBaseConnector).closing) { eventData.subscriptions.delete(addressIndex);