Fix metadata exception handler #2 #3357
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context
Follow up #3335
The first fix was not working for metadata due to the ExceptionHandlerService not being injected in the module factory. This PR should fix this.
I also fixed a typo in the ExceptionHandlerSentryDriverFactoryOptions interface and changed a bit the logic of the global exception handler to capture all exceptions except httpExceptions with statusCode < 500. This means now not only HttpException >= 500 and typeORM exceptions but anything extending Error or Error itself should be captured.
Due to that change, I've checked metadata module to replace the different "throw new Error" accordingly.
With our implementation of nestjs-query, all the logic lives inside a service instead of a resolver (which is automatically generated for us), including the validation logic. Ideally we should not throw http-related exceptions to