Skip to content

Commit 4dfcced

Browse files
committed
add node to format command
1 parent ed0949d commit 4dfcced

File tree

3 files changed

+45
-63
lines changed

3 files changed

+45
-63
lines changed

examples/node/app/entry.client.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
* For more information, see https://remix.run/file-conventions/entry.client
55
*/
66

7-
import { RemixBrowser } from "@remix-run/react";
8-
import { startTransition, StrictMode } from "react";
9-
import { hydrateRoot } from "react-dom/client";
7+
import { RemixBrowser } from '@remix-run/react'
8+
import { startTransition, StrictMode } from 'react'
9+
import { hydrateRoot } from 'react-dom/client'
1010

1111
startTransition(() => {
1212
hydrateRoot(
1313
document,
1414
<StrictMode>
1515
<RemixBrowser />
1616
</StrictMode>
17-
);
18-
});
17+
)
18+
})

examples/node/app/entry.server.tsx

Lines changed: 38 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
* For more information, see https://remix.run/file-conventions/entry.server
55
*/
66

7-
import { PassThrough } from "node:stream";
7+
import { PassThrough } from 'node:stream'
88

9-
import type { AppLoadContext, EntryContext } from "@remix-run/node";
10-
import { createReadableStreamFromReadable } from "@remix-run/node";
11-
import { RemixServer } from "@remix-run/react";
12-
import { isbot } from "isbot";
13-
import { renderToPipeableStream } from "react-dom/server";
9+
import type { AppLoadContext, EntryContext } from '@remix-run/node'
10+
import { createReadableStreamFromReadable } from '@remix-run/node'
11+
import { RemixServer } from '@remix-run/react'
12+
import { isbot } from 'isbot'
13+
import { renderToPipeableStream } from 'react-dom/server'
1414

15-
const ABORT_DELAY = 5_000;
15+
const ABORT_DELAY = 5_000
1616

1717
export default function handleRequest(
1818
request: Request,
@@ -24,19 +24,9 @@ export default function handleRequest(
2424
// eslint-disable-next-line @typescript-eslint/no-unused-vars
2525
loadContext: AppLoadContext
2626
) {
27-
return isbot(request.headers.get("user-agent") || "")
28-
? handleBotRequest(
29-
request,
30-
responseStatusCode,
31-
responseHeaders,
32-
remixContext
33-
)
34-
: handleBrowserRequest(
35-
request,
36-
responseStatusCode,
37-
responseHeaders,
38-
remixContext
39-
);
27+
return isbot(request.headers.get('user-agent') || '')
28+
? handleBotRequest(request, responseStatusCode, responseHeaders, remixContext)
29+
: handleBrowserRequest(request, responseStatusCode, responseHeaders, remixContext)
4030
}
4131

4232
function handleBotRequest(
@@ -46,47 +36,43 @@ function handleBotRequest(
4636
remixContext: EntryContext
4737
) {
4838
return new Promise((resolve, reject) => {
49-
let shellRendered = false;
39+
let shellRendered = false
5040
const { pipe, abort } = renderToPipeableStream(
51-
<RemixServer
52-
context={remixContext}
53-
url={request.url}
54-
abortDelay={ABORT_DELAY}
55-
/>,
41+
<RemixServer context={remixContext} url={request.url} abortDelay={ABORT_DELAY} />,
5642
{
5743
onAllReady() {
58-
shellRendered = true;
59-
const body = new PassThrough();
60-
const stream = createReadableStreamFromReadable(body);
44+
shellRendered = true
45+
const body = new PassThrough()
46+
const stream = createReadableStreamFromReadable(body)
6147

62-
responseHeaders.set("Content-Type", "text/html");
48+
responseHeaders.set('Content-Type', 'text/html')
6349

6450
resolve(
6551
new Response(stream, {
6652
headers: responseHeaders,
6753
status: responseStatusCode,
6854
})
69-
);
55+
)
7056

71-
pipe(body);
57+
pipe(body)
7258
},
7359
onShellError(error: unknown) {
74-
reject(error);
60+
reject(error)
7561
},
7662
onError(error: unknown) {
77-
responseStatusCode = 500;
63+
responseStatusCode = 500
7864
// Log streaming rendering errors from inside the shell. Don't log
7965
// errors encountered during initial shell rendering since they'll
8066
// reject and get logged in handleDocumentRequest.
8167
if (shellRendered) {
82-
console.error(error);
68+
console.error(error)
8369
}
8470
},
8571
}
86-
);
72+
)
8773

88-
setTimeout(abort, ABORT_DELAY);
89-
});
74+
setTimeout(abort, ABORT_DELAY)
75+
})
9076
}
9177

9278
function handleBrowserRequest(
@@ -96,45 +82,41 @@ function handleBrowserRequest(
9682
remixContext: EntryContext
9783
) {
9884
return new Promise((resolve, reject) => {
99-
let shellRendered = false;
85+
let shellRendered = false
10086
const { pipe, abort } = renderToPipeableStream(
101-
<RemixServer
102-
context={remixContext}
103-
url={request.url}
104-
abortDelay={ABORT_DELAY}
105-
/>,
87+
<RemixServer context={remixContext} url={request.url} abortDelay={ABORT_DELAY} />,
10688
{
10789
onShellReady() {
108-
shellRendered = true;
109-
const body = new PassThrough();
110-
const stream = createReadableStreamFromReadable(body);
90+
shellRendered = true
91+
const body = new PassThrough()
92+
const stream = createReadableStreamFromReadable(body)
11193

112-
responseHeaders.set("Content-Type", "text/html");
94+
responseHeaders.set('Content-Type', 'text/html')
11395

11496
resolve(
11597
new Response(stream, {
11698
headers: responseHeaders,
11799
status: responseStatusCode,
118100
})
119-
);
101+
)
120102

121-
pipe(body);
103+
pipe(body)
122104
},
123105
onShellError(error: unknown) {
124-
reject(error);
106+
reject(error)
125107
},
126108
onError(error: unknown) {
127-
responseStatusCode = 500;
109+
responseStatusCode = 500
128110
// Log streaming rendering errors from inside the shell. Don't log
129111
// errors encountered during initial shell rendering since they'll
130112
// reject and get logged in handleDocumentRequest.
131113
if (shellRendered) {
132-
console.error(error);
114+
console.error(error)
133115
}
134116
},
135117
}
136-
);
118+
)
137119

138-
setTimeout(abort, ABORT_DELAY);
139-
});
120+
setTimeout(abort, ABORT_DELAY)
121+
})
140122
}

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
"watch": "tsup --watch",
1313
"lint": "eslint src examples/cloudflare-pages/app examples/cloudflare-pages/server examples/cloudflare-workers/app examples/cloudflare-workers/server",
1414
"lint:fix": "eslint src examples/cloudflare-pages/app examples/cloudflare-pages/server examples/cloudflare-workers/app examples/cloudflare-workers/server --fix",
15-
"format": "prettier --check --cache \"src/**/*.{ts,tsx}\" \"examples/cloudflare-pages/**/*.{ts,tsx}\" \"examples/cloudflare-workers/**/*.{ts,tsx}\"",
16-
"format:fix": "prettier --write --cache --cache-strategy metadata \"src/**/*.{ts,tsx}\" \"examples/cloudflare-pages/**/*.{ts,tsx}\" \"examples/cloudflare-workers/**/*.{ts,tsx}\"",
15+
"format": "prettier --check --cache \"src/**/*.{ts,tsx}\" \"examples/cloudflare-pages/**/*.{ts,tsx}\" \"examples/cloudflare-workers/**/*.{ts,tsx}\" \"examples/node/**/*.{ts,tsx}\"",
16+
"format:fix": "prettier --write --cache --cache-strategy metadata \"src/**/*.{ts,tsx}\" \"examples/cloudflare-pages/**/*.{ts,tsx}\" \"examples/cloudflare-workers/**/*.{ts,tsx}\" \"examples/node/**/*.{ts,tsx}\"",
1717
"publint": "publint",
1818
"prerelease": "npm run build && npm run test",
1919
"release": "np"

0 commit comments

Comments
 (0)