From b5cc835fed9bd624c20d5f4f42b15c3cfa4b3fbe Mon Sep 17 00:00:00 2001 From: Daniel Lando Date: Thu, 1 Aug 2024 17:26:04 +0200 Subject: [PATCH] fix(browser): prevent error `stream.push() after EOF` (#1915) Fixes #1914 --- src/lib/BufferedDuplex.ts | 4 +++- src/lib/connect/ws.ts | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib/BufferedDuplex.ts b/src/lib/BufferedDuplex.ts index 99af4bb37..98007565f 100644 --- a/src/lib/BufferedDuplex.ts +++ b/src/lib/BufferedDuplex.ts @@ -56,7 +56,9 @@ export class BufferedDuplex extends Duplex { this.isSocketOpen = false this.proxy.on('data', (chunk) => { - this.push(chunk) + if (!this.destroyed) { + this.push(chunk) + } }) } diff --git a/src/lib/connect/ws.ts b/src/lib/connect/ws.ts index dc72cae69..7abc527a0 100644 --- a/src/lib/connect/ws.ts +++ b/src/lib/connect/ws.ts @@ -260,7 +260,9 @@ const browserStreamBuilder: StreamBuilder = (client, opts) => { let { data } = event if (data instanceof ArrayBuffer) data = Buffer.from(data) else data = Buffer.from(data as string, 'utf8') - proxy.push(data) + if (!proxy?.destroyed) { + proxy.push(data) + } } function socketWriteBrowser(