MCPcopy Index your code
hub / github.com/epicweb-dev/epic-stack / handleRequest

Function handleRequest

app/entry.server.tsx:25–83  ·  view source on GitHub ↗
(...args: DocRequestArgs)

Source from the content-addressed store, hash-verified

23type DocRequestArgs = Parameters<HandleDocumentRequestFunction>
24
25export default async function handleRequest(...args: DocRequestArgs) {
26 const [
27 request,
28 responseStatusCode,
29 responseHeaders,
30 remixContext,
31 loadContext,
32 ] = args
33 const { currentInstance, primaryInstance } = await getInstanceInfo()
34 responseHeaders.set('fly-region', process.env.FLY_REGION ?? 'unknown')
35 responseHeaders.set('fly-app', process.env.FLY_APP_NAME ?? 'unknown')
36 responseHeaders.set('fly-primary-instance', primaryInstance)
37 responseHeaders.set('fly-instance', currentInstance)
38
39 if (process.env.NODE_ENV === 'production' && process.env.SENTRY_DSN) {
40 responseHeaders.append('Document-Policy', 'js-profiling')
41 }
42
43 const callbackName = isbot(request.headers.get('user-agent'))
44 ? 'onAllReady'
45 : 'onShellReady'
46
47 const nonce = loadContext.cspNonce?.toString() ?? ''
48 return new Promise(async (resolve, reject) => {
49 let didError = false
50 // NOTE: this timing will only include things that are rendered in the shell
51 // and will not include suspended components and deferred loaders
52 const timings = makeTimings('render', 'renderToPipeableStream')
53
54 const { pipe, abort } = renderToPipeableStream(
55 <NonceProvider value={nonce}>
56 <RemixServer context={remixContext} url={request.url} />
57 </NonceProvider>,
58 {
59 [callbackName]: () => {
60 const body = new PassThrough()
61 responseHeaders.set('Content-Type', 'text/html')
62 responseHeaders.append('Server-Timing', timings.toString())
63 resolve(
64 new Response(createReadableStreamFromReadable(body), {
65 headers: responseHeaders,
66 status: didError ? 500 : responseStatusCode,
67 }),
68 )
69 pipe(body)
70 },
71 onShellError: (err: unknown) => {
72 reject(err)
73 },
74 onError: () => {
75 didError = true
76 },
77 nonce,
78 },
79 )
80
81 setTimeout(abort, ABORT_DELAY)
82 })

Callers

nothing calls this directly

Calls 1

makeTimingsFunction · 0.90

Tested by

no test coverage detected