t3-code-android-nightly/.repos/alchemy-effect/packages/frontend-frameworks/fixtures/react-router-rsc/react-router-vite/entry.ssr.tsx
Julius Marminge e3c85ead63
chore(refs): sync Effect and Alchemy references to rc.115 and beta.78 (#12327)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-17 23:21:25 -07:00

33 lines
975 B
TypeScript

import { createFromReadableStream } from "@vitejs/plugin-rsc/ssr";
import { renderToReadableStream as renderHTMLToReadableStream } from "react-dom/server.edge";
import {
unstable_routeRSCServerRequest as routeRSCServerRequest,
unstable_RSCStaticRouter as RSCStaticRouter,
} from "react-router";
export default async function handler(
request: Request,
serverResponse: Response,
): Promise<Response> {
const bootstrapScriptContent =
await import.meta.viteRsc.loadBootstrapScriptContent("index");
return await routeRSCServerRequest({
request,
serverResponse,
createFromReadableStream,
async renderHTML(getPayload, options) {
const payload = getPayload();
return await renderHTMLToReadableStream(
<RSCStaticRouter getPayload={getPayload} />,
{
...options,
bootstrapScriptContent,
signal: request.signal,
formState: await payload.formState,
},
);
},
});
}