packages/server: Return API errors as JSON

This commit is contained in:
Jerko Steiner 2019-03-25 13:27:33 +08:00
parent 5c22f44930
commit 3f96a128a0
2 changed files with 7 additions and 1 deletions

View File

@ -11,7 +11,7 @@ export class ErrorApiHandler implements IMiddleware {
req.correlationId, err.stack) req.correlationId, err.stack)
const statusCode = this.getStatus(err) const statusCode = this.getStatus(err)
res.status(statusCode) res.status(statusCode)
if (err instanceof ValidationError) { if (ValidationError.isInstanceOf(err)) {
res.json({ res.json({
error: err.message, error: err.message,
errors: err.errors, errors: err.errors,

View File

@ -15,4 +15,10 @@ export class ValidationError extends Error {
this.name = 'ValidationError' this.name = 'ValidationError'
Error.captureStackTrace(this) Error.captureStackTrace(this)
} }
static isInstanceOf(err: any): err is ValidationError {
return typeof err.status === 'number'
&& typeof err.message === 'string'
&& Array.isArray(err.errors)
}
} }