init
This commit is contained in:
34
src/server/utils/errorHandler.ts
Normal file
34
src/server/utils/errorHandler.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import { Context } from 'hono'
|
||||
import { z } from 'zod'
|
||||
import { HTTPException } from 'hono/http-exception'
|
||||
|
||||
export const ErrorSchema = z.object({
|
||||
code: z.number().openapi({
|
||||
example: 400,
|
||||
}),
|
||||
message: z.string().openapi({
|
||||
example: 'Bad Request',
|
||||
}),
|
||||
})
|
||||
|
||||
export const errorHandler = async (err: Error, c: Context) => {
|
||||
if (err instanceof HTTPException) {
|
||||
const details = err.cause ? { details: err.cause instanceof Error ? err.cause.message : err.cause } : {}
|
||||
return c.json(
|
||||
{
|
||||
code: err.status,
|
||||
message: err.message,
|
||||
...details
|
||||
},
|
||||
err.status
|
||||
)
|
||||
}
|
||||
|
||||
return c.json(
|
||||
{
|
||||
code: 500,
|
||||
message: err.message || 'Internal Server Error'
|
||||
},
|
||||
500
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user