Open eldir opened 3 weeks ago
Closing this here as I should have posted this in the client repo.
Hi! The library uses JSON.stringify()
under the hood, which indeed removes functions (and undefined
values as well).
Not sure what we could do here. Maybe with a custom parser?
Reference: https://socket.io/docs/v4/custom-parser/
Hi,
I think there are a few good angles to mitigate this. Ultimately I wouldn't have expected it to necessarily process the function reference (even though a simple console.log(function_reference)
will process a function reference into a JSON object). My confusion stems from it silently altering the schema by removing the key entirely, which feels like the worst possible option.
key: undefined
or key: error msg
seem like a more natural way of processing this errorMaybe allowing a replacer function to be passed could be a solution?
Describe the bug When passing an object to an emit that contains a function reference it just quietly gets omitted.
To Reproduce
Checking traffic will show that
test
gets a message containing onlyWith no error or even warning on the console.
Expected behavior If jsonification fails (which is what I suspect is happening here) I would expect at least a warning or a full transmission failure and not quiet removal of part of the transmitted object.
Platform:
Additional context For context we initially found this with a misconfigured value from redux. A
console.log(data)
will produce the full object as expected.