import { HttpError } from "./error.ts" function httpHandler( handler: (request: Bun.BunRequest) => Promise, ): (request: Bun.BunRequest) => Promise { 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 }