From 2d7c74ef3624438f381a8f7eead863c05e2ac2ad Mon Sep 17 00:00:00 2001 From: yuyaryshev Date: Wed, 19 Aug 2020 10:31:36 +0300 Subject: [PATCH 1/2] Added tailHolder parameter to decode I have a stream of MessagePack messages, to parse it i need a way to know message size. --- lib/decode.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/decode.js b/lib/decode.js index 5692c76..2bad3ae 100644 --- a/lib/decode.js +++ b/lib/decode.js @@ -255,10 +255,12 @@ Decoder.prototype.parse = function () { throw new Error('Could not parse'); }; -function decode(buffer) { +function decode(buffer, tailHolder) { const decoder = new Decoder(buffer); const value = decoder.parse(); - if (decoder.offset !== buffer.length) { + if(tailHolder) { + tailHolder.tail = (buffer.length - decoder.offset) + } else if (decoder.offset !== buffer.length) { throw new Error((buffer.length - decoder.offset) + ' trailing bytes'); } return value; From 7eb1d63331b29dbb5fc3252a6bc93bafe85ded7a Mon Sep 17 00:00:00 2001 From: yuyaryshev Date: Wed, 19 Aug 2020 10:38:08 +0300 Subject: [PATCH 2/2] Added semicolon to match code style --- lib/decode.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/decode.js b/lib/decode.js index 2bad3ae..3f825cf 100644 --- a/lib/decode.js +++ b/lib/decode.js @@ -259,7 +259,7 @@ function decode(buffer, tailHolder) { const decoder = new Decoder(buffer); const value = decoder.parse(); if(tailHolder) { - tailHolder.tail = (buffer.length - decoder.offset) + tailHolder.tail = (buffer.length - decoder.offset); } else if (decoder.offset !== buffer.length) { throw new Error((buffer.length - decoder.offset) + ' trailing bytes'); }