highsource / highsource/jsonix
[feature-request] Error message more verbose
- Dominant language
- JavaScript
- Stars
- 369
- Forks
- 85
- PR merge metrics
- No merged PRs in 30d
Description
## A problem
This issue is a request for a more obvious, understandable error message.
While I was coding JSON to XML marshalling and I used wrong parameter type (value type in nested POJO object) - I got this error
```
Error: Argument [23] must be a string.
at Object.ensureString (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:750:10)
at Class.print (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:4186:22)
at Class.reprint (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:4078:16)
at Class.marshal (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:4093:32)
at Class.marshalElement (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:1877:14)
at Class.marshal (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:3033:9)
at Class.marshal (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:2353:21)
at Class.marshalElement (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:1877:14)
at Class.marshal (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:3040:10)
at Class.marshal (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:2353:21)
at Class.marshalElement (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:1877:14)
at Class.marshalDocument (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:2040:8)
at Class.marshalString (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:2030:18)
at JPKXMLService.marshalObjectIntoString (/home/marek/workspace/web-server/src/adapters/services/JPKXMLService.ts:81:34)
at JPKXMLService.getJPKFAXML (/home/marek/workspace/web-server/src/adapters/services/JPKXMLService.ts:101:19)
at GetJPKFAUseCase. (/home/marek/workspace/web-server/src/core/usecase/invoices/getJPKFA/GetJPKFAUseCase.ts:47:39)
```
Which said me not much.
## A proposition
It would be very useful if the error contained a path to the problematic value, eg:
### Wrong JSON
```
const data = {
stuff: {
good: 1,
bad: [
{
some:"value"
},
{
some:123
},
]
}
}
```
### Better error message
```
Error: Argument [some] must be a number, but string was given. Wrong type at the end of "stuff.bad[0]" path.
at Object.ensureString (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:750:10)
at Class.print (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:4186:22)
at Class.reprint (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:4078:16)
at Class.marshal (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:4093:32)
at Class.marshalElement (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:1877:14)
at Class.marshal (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:3033:9)
at Class.marshal (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:2353:21)
at Class.marshalElement (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:1877:14)
at Class.marshal (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:3040:10)
at Class.marshal (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:2353:21)
at Class.marshalElement (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:1877:14)
at Class.marshalDocument (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:2040:8)
at Class.marshalString (/home/marek/workspace/web-server/node_modules/jsonix/jsonix.js:2030:18)
at JPKXMLService.marshalObjectIntoString (/home/marek/workspace/web-server/src/adapters/services/JPKXMLService.ts:81:34)
at JPKXMLService.getJPKFAXML (/home/marek/workspace/web-server/src/adapters/services/JPKXMLService.ts:101:19)
at GetJPKFAUseCase. (/home/marek/workspace/web-server/src/core/usecase/invoices/getJPKFA/GetJPKFAUseCase.ts:47:39)
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.