From b8614e1a5afba9613b4dff69b92d9dca9c92759d Mon Sep 17 00:00:00 2001 From: extremeheat Date: Sat, 21 Dec 2024 23:33:53 -0500 Subject: [PATCH 1/4] Include buffer context when throwing error in deserializer streams This makes it possible to debug issues with schemas or invalid buffers --- src/serializer.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/serializer.js b/src/serializer.js index 8b52e95..8c86d3d 100644 --- a/src/serializer.js +++ b/src/serializer.js @@ -43,8 +43,8 @@ class Parser extends Transform { try { packet = this.parsePacketBuffer(this.queue) } catch (e) { + e.buffer = this.queue if (e.partialReadError) { return cb() } else { - e.buffer = this.queue this.queue = Buffer.alloc(0) return cb(e) } @@ -77,6 +77,7 @@ class FullPacketParser extends Transform { JSON.stringify(packet.data) + '; buffer :' + chunk.toString('hex')) } } catch (e) { + e.buffer = this.queue if (e.partialReadError) { if (!this.noErrorLogging) { console.log(e.stack) From ea497b9d6cf329eb36cde6f31273612583caa387 Mon Sep 17 00:00:00 2001 From: extremeheat Date: Sat, 21 Dec 2024 23:44:36 -0500 Subject: [PATCH 2/4] Update serializer.js --- src/serializer.js | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/serializer.js b/src/serializer.js index 8c86d3d..fde1a55 100644 --- a/src/serializer.js +++ b/src/serializer.js @@ -43,8 +43,10 @@ class Parser extends Transform { try { packet = this.parsePacketBuffer(this.queue) } catch (e) { - e.buffer = this.queue - if (e.partialReadError) { return cb() } else { + if (e.partialReadError) { + e.buffer = this.queue + return cb(e) + } else { this.queue = Buffer.alloc(0) return cb(e) } @@ -78,14 +80,7 @@ class FullPacketParser extends Transform { } } catch (e) { e.buffer = this.queue - if (e.partialReadError) { - if (!this.noErrorLogging) { - console.log(e.stack) - } - return cb() - } else { - return cb(e) - } + return cb(e) } this.push(packet) cb() From ff3265fd1505796d869136f8fc514aff926cc209 Mon Sep 17 00:00:00 2001 From: extremeheat Date: Sat, 21 Dec 2024 23:45:27 -0500 Subject: [PATCH 3/4] Update serializer.js --- src/serializer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/serializer.js b/src/serializer.js index fde1a55..dff1a97 100644 --- a/src/serializer.js +++ b/src/serializer.js @@ -44,9 +44,9 @@ class Parser extends Transform { packet = this.parsePacketBuffer(this.queue) } catch (e) { if (e.partialReadError) { - e.buffer = this.queue - return cb(e) + return cb() } else { + e.buffer = this.queue this.queue = Buffer.alloc(0) return cb(e) } From f1dbf46fd8fa26e55e84306d72567e0a82890a7c Mon Sep 17 00:00:00 2001 From: extremeheat Date: Sat, 21 Dec 2024 23:58:28 -0500 Subject: [PATCH 4/4] lint --- src/serializer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/serializer.js b/src/serializer.js index dff1a97..0cf9f90 100644 --- a/src/serializer.js +++ b/src/serializer.js @@ -43,7 +43,7 @@ class Parser extends Transform { try { packet = this.parsePacketBuffer(this.queue) } catch (e) { - if (e.partialReadError) { + if (e.partialReadError) { return cb() } else { e.buffer = this.queue