Merge pull request #33040 from overleaf/em-parse-req-errors

Replace isZodErrorLike with custom error types in request validation

GitOrigin-RevId: 9cb453a2cde595a00f5049e4829ea9e3dbe17b28
This commit is contained in:
Eric Mc Sween
2026-05-06 08:06:37 +00:00
committed by Copybot
parent 1aa6f03b3c
commit 98def949ec
16 changed files with 100 additions and 80 deletions
@@ -1,15 +1,20 @@
const { isZodErrorLike, fromError } = require('zod-validation-error')
const { fromError } = require('zod-validation-error')
const { InvalidParamsError, InvalidRequestError } = require('./Errors')
function createHandleValidationError(statusCode = 400) {
return [
(err, req, res, next) => {
if (!isZodErrorLike(err)) {
return next(err)
}
res.status(statusCode).json({ ...fromError(err), statusCode })
},
]
return (err, req, res, next) => {
if (err instanceof InvalidParamsError) {
res
.status(404)
.json({ error: fromError(err.zodError).toString(), statusCode: 404 })
} else if (err instanceof InvalidRequestError) {
res
.status(statusCode)
.json({ error: fromError(err.zodError).toString(), statusCode })
} else {
next(err)
}
}
}
const handleValidationError = createHandleValidationError(400)