Skip to content

Commit 303421a

Browse files
committed
feat: routeRSCServerRequest replace fetchServer with serverResponse
1 parent 75bdd9b commit 303421a

File tree

14 files changed

+66
-44
lines changed

14 files changed

+66
-44
lines changed

.changeset/plenty-kiwis-matter.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@react-router/dev": minor
3+
"react-router": minor
4+
---
5+
6+
routeRSCServerRequest replace fetchServer with serverResponse

docs/api/rsc/RSCStaticRouter.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ unstable: true
66
# unstable_RSCStaticRouter
77

88
<!--
9-
⚠️ ⚠️ IMPORTANT ⚠️ ⚠️
9+
⚠️ ⚠️ IMPORTANT ⚠️ ⚠️
1010
1111
Thank you for helping improve our documentation!
1212
@@ -22,8 +22,8 @@ https://github.com/remix-run/react-router/blob/main/packages/react-router/lib/rs
2222
<br />
2323
<br />
2424

25-
<docs-warning>This API is experimental and subject to breaking changes in
26-
minor/patch releases. Please use with caution and pay **very** close attention
25+
<docs-warning>This API is experimental and subject to breaking changes in
26+
minor/patch releases. Please use with caution and pay **very** close attention
2727
to release notes for relevant changes.</docs-warning>
2828

2929
## Summary
@@ -43,7 +43,7 @@ import {
4343

4444
routeRSCServerRequest({
4545
request,
46-
fetchServer,
46+
serverResponse,
4747
createFromReadableStream,
4848
async renderHTML(getPayload) {
4949
const payload = getPayload();
@@ -53,7 +53,7 @@ routeRSCServerRequest({
5353
{
5454
bootstrapScriptContent,
5555
formState: await payload.formState,
56-
}
56+
},
5757
);
5858
},
5959
});
@@ -62,7 +62,9 @@ routeRSCServerRequest({
6262
## Signature
6363

6464
```tsx
65-
function RSCStaticRouter({ getPayload }: RSCStaticRouterProps)
65+
function RSCStaticRouter({
66+
getPayload,
67+
}: RSCStaticRouterProps);
6668
```
6769

6870
## Props
@@ -71,4 +73,3 @@ function RSCStaticRouter({ getPayload }: RSCStaticRouterProps)
7173

7274
A function that starts decoding of the [`unstable_RSCPayload`](https://api.reactrouter.com/v7/types/react_router.unstable_RSCPayload.html). Usually passed
7375
through from [`unstable_routeRSCServerRequest`](../rsc/routeRSCServerRequest)'s `renderHTML`.
74-

docs/api/rsc/routeRSCServerRequest.md

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ unstable: true
66
# unstable_routeRSCServerRequest
77

88
<!--
9-
⚠️ ⚠️ IMPORTANT ⚠️ ⚠️
9+
⚠️ ⚠️ IMPORTANT ⚠️ ⚠️
1010
1111
Thank you for helping improve our documentation!
1212
@@ -22,8 +22,8 @@ https://github.com/remix-run/react-router/blob/main/packages/react-router/lib/rs
2222
<br />
2323
<br />
2424

25-
<docs-warning>This API is experimental and subject to breaking changes in
26-
minor/patch releases. Please use with caution and pay **very** close attention
25+
<docs-warning>This API is experimental and subject to breaking changes in
26+
minor/patch releases. Please use with caution and pay **very** close attention
2727
to release notes for relevant changes.</docs-warning>
2828

2929
## Summary
@@ -45,7 +45,7 @@ import {
4545

4646
routeRSCServerRequest({
4747
request,
48-
fetchServer,
48+
serverResponse,
4949
createFromReadableStream,
5050
async renderHTML(getPayload) {
5151
const payload = getPayload();
@@ -55,7 +55,7 @@ routeRSCServerRequest({
5555
{
5656
bootstrapScriptContent,
5757
formState: await payload.formState,
58-
}
58+
},
5959
);
6060
},
6161
});
@@ -66,19 +66,21 @@ routeRSCServerRequest({
6666
```tsx
6767
async function routeRSCServerRequest({
6868
request,
69-
fetchServer,
69+
serverResponse,
7070
createFromReadableStream,
7171
renderHTML,
7272
hydrate = true,
7373
}: {
7474
request: Request;
75-
fetchServer: (request: Request) => Promise<Response>;
75+
serverResponse: Response;
7676
createFromReadableStream: SSRCreateFromReadableStreamFunction;
7777
renderHTML: (
7878
getPayload: () => DecodedPayload,
79-
) => ReadableStream<Uint8Array> | Promise<ReadableStream<Uint8Array>>;
79+
) =>
80+
| ReadableStream<Uint8Array>
81+
| Promise<ReadableStream<Uint8Array>>;
8082
hydrate?: boolean;
81-
}): Promise<Response>
83+
}): Promise<Response>;
8284
```
8385

8486
## Params
@@ -109,4 +111,3 @@ The request to route.
109111
A [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response)
110112
that either contains the [RSC](https://react.dev/reference/rsc/server-components)
111113
payload for data requests, or renders the HTML for document requests.
112-

docs/how-to/react-server-components.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -634,14 +634,14 @@ import { createFromReadableStream } from "react-server-dom-parcel/client.edge";
634634

635635
export async function generateHTML(
636636
request: Request,
637-
fetchServer: (request: Request) => Promise<Response>,
637+
serverResponse: Response,
638638
bootstrapScriptContent: string | undefined,
639639
): Promise<Response> {
640640
return await routeRSCServerRequest({
641641
// The incoming request.
642642
request,
643-
// How to call the React Server.
644-
fetchServer,
643+
// The React Server response.
644+
serverResponse,
645645
// Provide the React Server touchpoints.
646646
createFromReadableStream,
647647
// Render the router to HTML.
@@ -864,13 +864,13 @@ import {
864864

865865
export async function generateHTML(
866866
request: Request,
867-
fetchServer: (request: Request) => Promise<Response>,
867+
serverResponse: Response,
868868
): Promise<Response> {
869869
return await routeRSCServerRequest({
870870
// The incoming request.
871871
request,
872-
// How to call the React Server.
873-
fetchServer,
872+
// The React Server response
873+
serverResponse,
874874
// Provide the React Server touchpoints.
875875
createFromReadableStream,
876876
// Render the router to HTML.

integration/helpers/rsc-parcel/src/prerender.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ import { createFromReadableStream } from "react-server-dom-parcel/client.edge";
99

1010
export async function prerender(
1111
request: Request,
12-
fetchServer: (request: Request) => Promise<Response>,
12+
serverResponse: Response,
1313
bootstrapScriptContent: string | undefined,
1414
): Promise<Response> {
1515
return await routeRSCServerRequest({
1616
// The incoming request.
1717
request,
1818
// How to fetch from the React Server.
19-
fetchServer,
19+
serverResponse,
2020
// Provide the React Server touchpoints.
2121
createFromReadableStream,
2222
// Render the router to HTML.

integration/helpers/rsc-parcel/src/server.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@ app.get("/.well-known/appspecific/com.chrome.devtools.json", (_, res) => {
6363

6464
// Hookup our application.
6565
app.use(
66-
createRequestListener((request) =>
66+
createRequestListener(async (request) =>
6767
prerender(
6868
request,
69-
fetchServer,
69+
await fetchServer(request),
7070
(assets as unknown as { bootstrapScript?: string }).bootstrapScript,
7171
),
7272
),

integration/helpers/rsc-vite/src/entry.rsc.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,5 @@ export default async function handler(request: Request) {
3737
// eslint-disable-next-line @typescript-eslint/consistent-type-imports
3838
typeof import("./entry.ssr")
3939
>("ssr", "index");
40-
return ssr.default(request, fetchServer);
40+
return ssr.default(request, await fetchServer(request));
4141
}

integration/helpers/rsc-vite/src/entry.ssr.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ import {
88

99
export default async function handler(
1010
request: Request,
11-
fetchServer: (request: Request) => Promise<Response>,
11+
serverResponse: Response,
1212
) {
1313
const bootstrapScriptContent =
1414
await import.meta.viteRsc.loadBootstrapScriptContent("index");
1515
return routeRSCServerRequest({
1616
request,
17-
fetchServer,
17+
serverResponse,
1818
createFromReadableStream,
1919
async renderHTML(getPayload) {
2020
const payload = getPayload();

packages/react-router-dev/config/default-rsc-entries/entry.rsc.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export default async function handler(request: Request) {
3737
const ssr = await import.meta.viteRsc.loadModule<
3838
typeof import("./entry.ssr")
3939
>("ssr", "index");
40-
return ssr.default(request, fetchServer);
40+
return ssr.default(request, await fetchServer(request));
4141
}
4242

4343
if (import.meta.hot) {

packages/react-router-dev/config/default-rsc-entries/entry.ssr.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ import {
88

99
export default async function handler(
1010
request: Request,
11-
fetchServer: (request: Request) => Promise<Response>,
11+
serverResponse: Response,
1212
) {
1313
const bootstrapScriptContent =
1414
await import.meta.viteRsc.loadBootstrapScriptContent("index");
1515

1616
return routeRSCServerRequest({
1717
request,
18-
fetchServer,
18+
serverResponse,
1919
createFromReadableStream,
2020
async renderHTML(getPayload) {
2121
const payload = getPayload();

0 commit comments

Comments
 (0)