From fa0376fdc35974f3e00c98cfcbd1a3477b1a9edd Mon Sep 17 00:00:00 2001 From: Vitaly Date: Mon, 29 Apr 2024 02:19:05 +0300 Subject: [PATCH 1/2] readable createPacketBuffer errors --- src/compiler.js | 4 +++- src/utils.js | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/compiler.js b/src/compiler.js index c9889c8..13647c6 100644 --- a/src/compiler.js +++ b/src/compiler.js @@ -101,7 +101,9 @@ class CompiledProtodef { const buffer = Buffer.allocUnsafe(length) tryCatch(() => this.write(packet, buffer, 0, type), (e) => { - e.message = `Write error for ${e.field} : ${e.message}` + let packetStr = '' + try { packetStr = JSON.stringify(packet) } catch (err) { try { packetStr = packet } catch (err) {} } + e.message = `Write error for ${e.field} in ${packetStr} : ${e.message}` throw e }) return buffer diff --git a/src/utils.js b/src/utils.js index ab07739..b9628ec 100644 --- a/src/utils.js +++ b/src/utils.js @@ -47,7 +47,8 @@ function addErrorField (e, field) { } function tryCatch (tryfn, catchfn) { - try { return tryfn() } catch (e) { catchfn(e) } + Error.stackTraceLimit = 40 + try { return tryfn() } catch (e) { catchfn(e) } finally { Error.stackTraceLimit = 10 } } function tryDoc (tryfn, field) { From f8759d1f9ffc932eb34db051c7102dc92c25d29f Mon Sep 17 00:00:00 2001 From: Vitaly Date: Mon, 29 Apr 2024 02:29:44 +0300 Subject: [PATCH 2/2] silly mistakes --- src/compiler.js | 2 +- src/utils.js | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/compiler.js b/src/compiler.js index 13647c6..0be3dff 100644 --- a/src/compiler.js +++ b/src/compiler.js @@ -102,7 +102,7 @@ class CompiledProtodef { tryCatch(() => this.write(packet, buffer, 0, type), (e) => { let packetStr = '' - try { packetStr = JSON.stringify(packet) } catch (err) { try { packetStr = packet } catch (err) {} } + try { packetStr = JSON.stringify(packet) } catch (err) { try { packetStr = String(packet) } catch (err) {} } e.message = `Write error for ${e.field} in ${packetStr} : ${e.message}` throw e }) diff --git a/src/utils.js b/src/utils.js index b9628ec..0c23bb8 100644 --- a/src/utils.js +++ b/src/utils.js @@ -46,9 +46,10 @@ function addErrorField (e, field) { throw e } -function tryCatch (tryfn, catchfn) { - Error.stackTraceLimit = 40 - try { return tryfn() } catch (e) { catchfn(e) } finally { Error.stackTraceLimit = 10 } +function tryCatch(tryfn, catchfn) { + const oldLimit = Error.stackTraceLimit + Error.stackTraceLimit = Math.max(40, oldLimit) + try { return tryfn() } catch (e) { catchfn(e) } finally { Error.stackTraceLimit = oldLimit } } function tryDoc (tryfn, field) {