Skip to content

feat: add undefinedAsNil option to Encoder #278

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

eberlitz
Copy link

@eberlitz eberlitz commented Jun 12, 2025

Closes #150

Adds a new option to Encoder that is true by default ( to keep current behaviour). With this flag when ignoreUndefined is false, allows to distinguish null from undefined. It requires a custom extension to send undefined like :

extensionCodec.register({
    type: 0,
    encode: (value) => (value === undefined ? new Uint8Array([0]) : null),
    decode: () => undefined,
});

I also found another implementation (msgpackr) implements this as fixint 1 type 0 data 0, but I guess the consumer can decide in his custom extension

@eberlitz eberlitz marked this pull request as ready for review June 12, 2025 12:51
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

undefined becomes null after deserializing
1 participant