chore: worker setup for docs

This commit is contained in:
Rotimi Best
2026-05-19 05:28:50 +01:00
parent 6272ab107f
commit 4bcff3813a
9 changed files with 1074 additions and 78 deletions
+38
View File
@@ -0,0 +1,38 @@
import type { AppLoadContext, EntryContext } from 'react-router';
import { ServerRouter } from 'react-router';
import { isbot } from 'isbot';
import { renderToReadableStream } from 'react-dom/server';
export default async function handleRequest(
request: Request,
responseStatusCode: number,
responseHeaders: Headers,
routerContext: EntryContext,
_loadContext: AppLoadContext
) {
let shellRendered = false;
const userAgent = request.headers.get('user-agent');
const body = await renderToReadableStream(
<ServerRouter context={routerContext} url={request.url} />,
{
onError(error: unknown) {
responseStatusCode = 500;
if (shellRendered) {
console.error(error);
}
}
}
);
shellRendered = true;
if ((userAgent && isbot(userAgent)) || routerContext.isSpaMode) {
await body.allReady;
}
responseHeaders.set('Content-Type', 'text/html');
return new Response(body, {
headers: responseHeaders,
status: responseStatusCode
});
}