diff --git a/src/start.ts b/src/start.ts new file mode 100644 index 0000000..2086427 --- /dev/null +++ b/src/start.ts @@ -0,0 +1,24 @@ +import { createStart, createMiddleware } from "@tanstack/react-start"; + +import { renderErrorPage } from "./lib/error-page"; +import { attachSupabaseAuth } from "@/integrations/supabase/auth-attacher"; + +const errorMiddleware = createMiddleware().server(async ({ next }) => { + try { + return await next(); + } catch (error) { + if (error != null && typeof error === "object" && "statusCode" in error) { + throw error; + } + console.error(error); + return new Response(renderErrorPage(), { + status: 500, + headers: { "content-type": "text/html; charset=utf-8" }, + }); + } +}); + +export const startInstance = createStart(() => ({ + functionMiddleware: [attachSupabaseAuth], + requestMiddleware: [errorMiddleware], +}));