glenjamin / glenjamin/transit-immutable-js
`Error` serialization throws
- Dominant language
- JavaScript
- Stars
- 250
- Forks
- 27
- PR merge metrics
- No merged PRs in 30d
Description
Not sure if it is needed in general, but I ran into this today.
``` js
11:16 $ node
> const {toJSON} = require('transit-immutable-js')
undefined
> toJSON({error: new Error('OMG')})
Error: Error serializing unrecognized object Error: OMG
at transit.map.transit.makeWriteHandler.rep (/Users/nkbt/mh/ui/node_modules/transit-immutable-js/index.js:135:17)
at Object.com.cognitect.transit.impl.writer.marshal (/Users/nkbt/mh/ui/node_modules/transit-js/transit.js:2912:129)
at Object.com.cognitect.transit.impl.writer.emitMap (/Users/nkbt/mh/ui/node_modules/transit-js/transit.js:2875:115)
at Object.com.cognitect.transit.impl.writer.marshal (/Users/nkbt/mh/ui/node_modules/transit-js/transit.js:2932:50)
at Object.com.cognitect.transit.impl.writer.marshalTop (/Users/nkbt/mh/ui/node_modules/transit-js/transit.js:2950:59)
at com.cognitect.transit.impl.writer.Writer.write [as write] (/Users/nkbt/mh/ui/node_modules/transit-js/transit.js:2962:231)
at toJSON (/Users/nkbt/mh/ui/node_modules/transit-immutable-js/index.js:203:21)
at repl:1:1
at sigintHandlersWrap (vm.js:22:35)
at sigintHandlersWrap (vm.js:96:12)
>
```
`transit-immutable-js` falls back to "default" case"
``` js
"default", transit.makeWriteHandler({
tag: function() {
return 'iM';
},
rep: function(m) {
if (!('toMap' in m)) {
var e = "Error serializing unrecognized object " + m.toString();
throw new Error(e);
}
return mapSerializer(m.toMap());
}
})
```
To be fair, transit-js does not serialize `Error` either
``` js
> transit.writer('json').write({error: new Error('OMG')})
Error: Cannot write Error
at Error (native)
at Object.com.cognitect.transit.impl.writer.marshal (/Users/nkbt/mh/ui/node_modules/transit-js/transit.js:2937:71)
at Object.com.cognitect.transit.impl.writer.emitMap (/Users/nkbt/mh/ui/node_modules/transit-js/transit.js:2875:115)
at Object.com.cognitect.transit.impl.writer.marshal (/Users/nkbt/mh/ui/node_modules/transit-js/transit.js:2932:50)
at Object.com.cognitect.transit.impl.writer.marshalTop (/Users/nkbt/mh/ui/node_modules/transit-js/transit.js:2950:59)
at com.cognitect.transit.impl.writer.Writer.write [as write] (/Users/nkbt/mh/ui/node_modules/transit-js/transit.js:2962:231)
at repl:1:18
at sigintHandlersWrap (vm.js:22:35)
at sigintHandlersWrap (vm.js:96:12)
at ContextifyScript.Script.runInThisContext (vm.js:21:12)
```
Feel free to close if out of scope.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.