import type { EmailMessage } from "@kk/api/email-queue"; import { QueryClientProvider } from "@tanstack/react-query"; import { createRouter as createTanStackRouter } from "@tanstack/react-router"; import "./index.css"; import Loader from "./components/loader"; import { routeTree } from "./routeTree.gen"; import { orpc, queryClient } from "./utils/orpc"; // Minimal CF Queue binding shape needed for type inference type Queue = { send( message: EmailMessage, options?: { contentType?: string }, ): Promise; sendBatch( messages: Array<{ body: EmailMessage }>, options?: { contentType?: string }, ): Promise; }; export const getRouter = () => { const router = createTanStackRouter({ routeTree, scrollRestoration: true, defaultPreloadStaleTime: 0, context: { orpc, queryClient }, defaultPendingComponent: () => , defaultNotFoundComponent: () =>
Not Found
, Wrap: ({ children }) => ( {children} ), }); return router; }; declare module "@tanstack/react-router" { interface Register { router: ReturnType; } } declare module "@tanstack/router-core" { interface Register { server: { requestContext: { emailQueue?: Queue } }; } }