( request: Request, responseStatusCode: number, responseHeaders: Headers, remixContext: EntryContext )
| 21 | const ABORT_DELAY = 30000; |
| 22 | |
| 23 | export default function handleRequest( |
| 24 | request: Request, |
| 25 | responseStatusCode: number, |
| 26 | responseHeaders: Headers, |
| 27 | remixContext: EntryContext |
| 28 | ) { |
| 29 | const acceptLanguage = request.headers.get("accept-language"); |
| 30 | const locales = parseAcceptLanguage(acceptLanguage, { |
| 31 | validate: Intl.DateTimeFormat.supportedLocalesOf, |
| 32 | }); |
| 33 | |
| 34 | //get whether it's a mac or pc from the headers |
| 35 | const platform: OperatingSystemPlatform = request.headers.get("user-agent")?.includes("Mac") |
| 36 | ? "mac" |
| 37 | : "windows"; |
| 38 | |
| 39 | // If the request is from a bot, we want to wait for the full |
| 40 | // response to render before sending it to the client. This |
| 41 | // ensures that bots can see the full page content. |
| 42 | if (isbot(request.headers.get("user-agent"))) { |
| 43 | return handleBotRequest( |
| 44 | request, |
| 45 | responseStatusCode, |
| 46 | responseHeaders, |
| 47 | remixContext, |
| 48 | locales, |
| 49 | platform |
| 50 | ); |
| 51 | } |
| 52 | |
| 53 | return handleBrowserRequest( |
| 54 | request, |
| 55 | responseStatusCode, |
| 56 | responseHeaders, |
| 57 | remixContext, |
| 58 | locales, |
| 59 | platform |
| 60 | ); |
| 61 | } |
| 62 | |
| 63 | function handleBotRequest( |
| 64 | request: Request, |
nothing calls this directly
no test coverage detected
searching dependent graphs…