From 05eb62da5bfe76a2184e445b2021808afc66ed89 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Sat, 1 Mar 2025 19:41:17 -0300 Subject: [PATCH] support subscription label, not only an absolute id. --- abstract-pool.ts | 7 ++++--- abstract-relay.ts | 12 +++++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/abstract-pool.ts b/abstract-pool.ts index 5d92de0..d5cabcf 100644 --- a/abstract-pool.ts +++ b/abstract-pool.ts @@ -20,6 +20,7 @@ export type SubscribeManyParams = Omit & { maxWait?: number onclose?: (reasons: string[]) => void id?: string + label?: string } export class AbstractSimplePool { @@ -156,7 +157,7 @@ export class AbstractSimplePool { subscribeManyEose( relays: string[], filters: Filter[], - params: Pick, + params: Pick, ): SubCloser { const subcloser = this.subscribeMany(relays, filters, { ...params, @@ -170,7 +171,7 @@ export class AbstractSimplePool { async querySync( relays: string[], filter: Filter, - params?: Pick, + params?: Pick, ): Promise { return new Promise(async resolve => { const events: Event[] = [] @@ -189,7 +190,7 @@ export class AbstractSimplePool { async get( relays: string[], filter: Filter, - params?: Pick, + params?: Pick, ): Promise { filter.limit = 1 const events = await this.querySync(relays, filter, params) diff --git a/abstract-relay.ts b/abstract-relay.ts index ac98051..031f422 100644 --- a/abstract-relay.ts +++ b/abstract-relay.ts @@ -279,15 +279,21 @@ export class AbstractRelay { return ret } - public subscribe(filters: Filter[], params: Partial & { id?: string }): Subscription { + public subscribe( + filters: Filter[], + params: Partial & { label?: string; id?: string }, + ): Subscription { const subscription = this.prepareSubscription(filters, params) subscription.fire() return subscription } - public prepareSubscription(filters: Filter[], params: Partial & { id?: string }): Subscription { + public prepareSubscription( + filters: Filter[], + params: Partial & { label?: string; id?: string }, + ): Subscription { this.serial++ - const id = params.id || 'sub:' + this.serial + const id = params.id || (params.label ? params.label + ':' : 'sub:') + this.serial const subscription = new Subscription(this, id, filters, params) this.openSubs.set(id, subscription) return subscription