Open i-kovalyov opened 6 years ago
I think we should either allow to map nil to our own msgpack.Nil object, or output the result of tryDecode in tne decoder (via an option).
Added pull request fixing this error https://github.com/mcollina/msgpack5/pull/68
Msgpack nil is still mapped to null but during stream processing null temprarily replaced to undefined then replaced back to null.
Is this solution appropriate?
I founded that after decoding of 0xc0 byte (nil) from msgpack stream msgpack5 decides that stream is finished and then produces error.
I tried to replace text below from function tryDecode of decoder.js case 0xc0: return buildDecodeResult(null, 1) with case 0xc0: return buildDecodeResult(undefined, 1)
This correction fixed error.
However mapping msgpack nil to "undefined" don't looks as best solution.
I tried to fix error another way so, that 0xc0 (nil) maps to null but it's not easy. Null evaluation as end of stream is hardcoded in readable-stream. function readableAddChunk of _stream_readable.js has following code: ... if (chunk === null) { state.reading = false; onEofChunk(stream, state); } ...
Any ideas how to fix this error?