Files
markone/packages/server/src/http-handler.ts

23 lines
625 B
TypeScript
Raw Normal View History

2025-05-06 11:00:35 +01:00
import { HttpError } from "./error.ts"
function httpHandler<Route extends string>(
handler: (request: Bun.BunRequest<Route>) => Promise<Response>,
): (request: Bun.BunRequest<Route>) => Promise<Response> {
return async (request) => {
try {
const response = await handler(request)
return response
} catch (error) {
if (error instanceof HttpError) {
if (error.message) {
return Response.json({ message: error.message }, { status: error.status })
}
return new Response(undefined, { status: error.status })
}
return new Response(undefined, { status: 500 })
}
}
}
export { httpHandler }