77import { PassThrough } from 'node:stream' ;
88
99import type { AppLoadContext , EntryContext , DataFunctionArgs } from '@remix-run/node' ;
10- import { Response } from '@remix-run/node' ;
10+ import { json } from '@remix-run/node' ;
1111import { RemixServer } from '@remix-run/react' ;
12- import isbot from 'isbot' ;
1312import { renderToPipeableStream } from 'react-dom/server' ;
1413import * as Sentry from '@sentry/remix' ;
1514
@@ -19,7 +18,6 @@ Sentry.init({
1918 dsn : process . env . E2E_TEST_DSN ,
2019 // Performance Monitoring
2120 tracesSampleRate : 1.0 , // Capture 100% of the transactions, reduce in production!
22- isRemixV2 : true ,
2321} ) ;
2422
2523export function handleError ( error : unknown , { request } : DataFunctionArgs ) : void {
@@ -37,47 +35,7 @@ export default function handleRequest(
3735 remixContext : EntryContext ,
3836 loadContext : AppLoadContext ,
3937) {
40- return isbot ( request . headers . get ( 'user-agent' ) )
41- ? handleBotRequest ( request , responseStatusCode , responseHeaders , remixContext )
42- : handleBrowserRequest ( request , responseStatusCode , responseHeaders , remixContext ) ;
43- }
44-
45- function handleBotRequest (
46- request : Request ,
47- responseStatusCode : number ,
48- responseHeaders : Headers ,
49- remixContext : EntryContext ,
50- ) {
51- return new Promise ( ( resolve , reject ) => {
52- const { pipe, abort } = renderToPipeableStream (
53- < RemixServer context = { remixContext } url = { request . url } abortDelay = { ABORT_DELAY } /> ,
54- {
55- onAllReady ( ) {
56- const body = new PassThrough ( ) ;
57-
58- responseHeaders . set ( 'Content-Type' , 'text/html' ) ;
59-
60- resolve (
61- new Response ( body , {
62- headers : responseHeaders ,
63- status : responseStatusCode ,
64- } ) ,
65- ) ;
66-
67- pipe ( body ) ;
68- } ,
69- onShellError ( error : unknown ) {
70- reject ( error ) ;
71- } ,
72- onError ( error : unknown ) {
73- responseStatusCode = 500 ;
74- console . error ( error ) ;
75- } ,
76- } ,
77- ) ;
78-
79- setTimeout ( abort , ABORT_DELAY ) ;
80- } ) ;
38+ handleBrowserRequest ( request , responseStatusCode , responseHeaders , remixContext ) ;
8139}
8240
8341function handleBrowserRequest (
@@ -96,7 +54,7 @@ function handleBrowserRequest(
9654 responseHeaders . set ( 'Content-Type' , 'text/html' ) ;
9755
9856 resolve (
99- new Response ( body , {
57+ json ( body , {
10058 headers : responseHeaders ,
10159 status : responseStatusCode ,
10260 } ) ,
0 commit comments