Skip to content

Commit 4452dfb

Browse files
MichaelDeBoeymcansh
authored andcommitted
fix(turborepo-vercel): remove streaming (#99)
1 parent c2a9ffe commit 4452dfb

File tree

1 file changed

+11
-100
lines changed

1 file changed

+11
-100
lines changed
Lines changed: 11 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,21 @@
1-
import { PassThrough } from "stream";
2-
31
import type { EntryContext } from "@remix-run/node";
4-
import { Response } from "@remix-run/node";
52
import { RemixServer } from "@remix-run/react";
6-
import isbot from "isbot";
7-
import { renderToPipeableStream } from "react-dom/server";
8-
9-
const ABORT_DELAY = 5000;
10-
11-
const handleRequest = (
12-
request: Request,
13-
responseStatusCode: number,
14-
responseHeaders: Headers,
15-
remixContext: EntryContext
16-
) =>
17-
isbot(request.headers.get("user-agent"))
18-
? handleBotRequest(
19-
request,
20-
responseStatusCode,
21-
responseHeaders,
22-
remixContext
23-
)
24-
: handleBrowserRequest(
25-
request,
26-
responseStatusCode,
27-
responseHeaders,
28-
remixContext
29-
);
30-
export default handleRequest;
3+
import { renderToString } from "react-dom/server";
314

32-
const handleBotRequest = (
5+
export default function handleRequest(
336
request: Request,
347
responseStatusCode: number,
358
responseHeaders: Headers,
369
remixContext: EntryContext
37-
) =>
38-
new Promise((resolve, reject) => {
39-
let didError = false;
40-
41-
const { pipe, abort } = renderToPipeableStream(
42-
<RemixServer context={remixContext} url={request.url} />,
43-
{
44-
onAllReady: () => {
45-
const body = new PassThrough();
46-
47-
responseHeaders.set("Content-Type", "text/html");
48-
49-
resolve(
50-
new Response(body, {
51-
headers: responseHeaders,
52-
status: didError ? 500 : responseStatusCode,
53-
})
54-
);
55-
56-
pipe(body);
57-
},
58-
onShellError: (error: unknown) => {
59-
reject(error);
60-
},
61-
onError: (error: unknown) => {
62-
didError = true;
63-
64-
console.error(error);
65-
},
66-
}
67-
);
68-
69-
setTimeout(abort, ABORT_DELAY);
70-
});
71-
72-
const handleBrowserRequest = (
73-
request: Request,
74-
responseStatusCode: number,
75-
responseHeaders: Headers,
76-
remixContext: EntryContext
77-
) =>
78-
new Promise((resolve, reject) => {
79-
let didError = false;
80-
81-
const { pipe, abort } = renderToPipeableStream(
82-
<RemixServer context={remixContext} url={request.url} />,
83-
{
84-
onShellReady: () => {
85-
const body = new PassThrough();
86-
87-
responseHeaders.set("Content-Type", "text/html");
88-
89-
resolve(
90-
new Response(body, {
91-
headers: responseHeaders,
92-
status: didError ? 500 : responseStatusCode,
93-
})
94-
);
95-
96-
pipe(body);
97-
},
98-
onShellError: (error: unknown) => {
99-
reject(error);
100-
},
101-
onError: (error: unknown) => {
102-
didError = true;
10+
) {
11+
const markup = renderToString(
12+
<RemixServer context={remixContext} url={request.url} />
13+
);
10314

104-
console.error(error);
105-
},
106-
}
107-
);
15+
responseHeaders.set("Content-Type", "text/html");
10816

109-
setTimeout(abort, ABORT_DELAY);
17+
return new Response("<!DOCTYPE html>" + markup, {
18+
headers: responseHeaders,
19+
status: responseStatusCode,
11020
});
21+
}

0 commit comments

Comments
 (0)