diff --git a/abstract-relay.ts b/abstract-relay.ts index 1f26c42..0baf0d0 100644 --- a/abstract-relay.ts +++ b/abstract-relay.ts @@ -342,10 +342,7 @@ export class AbstractRelay { this.ongoingOperations++ } - this.serial++ - const id = params.id || (params.label ? params.label + ':' : 'sub:') + this.serial - const sub = new Subscription(this, id, filters, params) - this.openSubs.set(id, sub) + const sub = this.prepareSubscription(filters, params) sub.fire() if (params.abort) { @@ -355,6 +352,17 @@ export class AbstractRelay { return sub } + public prepareSubscription( + filters: Filter[], + params: Partial & { label?: string; id?: string }, + ): Subscription { + this.serial++ + const id = params.id || (params.label ? params.label + ':' : 'sub:') + this.serial + const sub = new Subscription(this, id, filters, params) + this.openSubs.set(id, sub) + return sub + } + public close() { this.skipReconnection = true if (this.reconnectTimeoutHandle) {