From d6defe284496ac82c9401e71026070ebe64a682f Mon Sep 17 00:00:00 2001 From: Jonathan Staab Date: Thu, 20 Jul 2023 10:03:37 -0700 Subject: [PATCH] Send close only if not already closed --- package.json | 2 +- src/Executor.ts | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 1d01883..7c8d86f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "paravel", - "version": "0.1.16", + "version": "0.1.17", "description": "Yet another toolkit for nostr", "repository": { "type": "git", diff --git a/src/Executor.ts b/src/Executor.ts index 78e5e85..a6f2565 100644 --- a/src/Executor.ts +++ b/src/Executor.ts @@ -8,6 +8,7 @@ export class Executor { this.target = target } subscribe(filters, {onEvent, onEose}) { + const closed = false const id = createSubId('REQ') const eventListener = (url, subid, e) => subid === id && onEvent?.(url, e) const eoseListener = (url, subid) => subid === id && onEose?.(url) @@ -18,9 +19,13 @@ export class Executor { return { unsubscribe: () => { - this.target.send("CLOSE", id) - this.target.off('EVENT', eventListener) - this.target.off('EOSE', eoseListener) + if (!closed) { + this.target.send("CLOSE", id) + this.target.off('EVENT', eventListener) + this.target.off('EOSE', eoseListener) + } + + closed = true }, } }