File tree Expand file tree Collapse file tree 3 files changed +101
-2
lines changed
integration/helpers/rsc-parcel-framework/app Expand file tree Collapse file tree 3 files changed +101
-2
lines changed Original file line number Diff line number Diff line change
1
+ "use client-entry" ;
2
+
3
+ import * as React from "react" ;
4
+ import { hydrateRoot } from "react-dom/client" ;
5
+ import {
6
+ type unstable_RSCPayload as RSCPayload ,
7
+ unstable_createCallServer as createCallServer ,
8
+ unstable_getRSCStream as getRSCStream ,
9
+ unstable_RSCHydratedRouter as RSCHydratedRouter ,
10
+ } from "react-router" ;
11
+ import {
12
+ createFromReadableStream ,
13
+ createTemporaryReferenceSet ,
14
+ encodeReply ,
15
+ setServerCallback ,
16
+ // @ts -expect-error
17
+ } from "react-server-dom-parcel/client" ;
18
+
19
+ setServerCallback (
20
+ createCallServer ( {
21
+ createFromReadableStream,
22
+ createTemporaryReferenceSet,
23
+ encodeReply,
24
+ } )
25
+ ) ;
26
+
27
+ createFromReadableStream ( getRSCStream ( ) ) . then ( ( payload : RSCPayload ) => {
28
+ React . startTransition ( ( ) => {
29
+ hydrateRoot (
30
+ document ,
31
+ React . createElement (
32
+ React . StrictMode ,
33
+ null ,
34
+ React . createElement ( RSCHydratedRouter , {
35
+ createFromReadableStream,
36
+ payload,
37
+ } )
38
+ )
39
+ ) ;
40
+ } ) ;
41
+ } ) ;
Original file line number Diff line number Diff line change
1
+ "use server-entry" ;
2
+
3
+ import {
4
+ createTemporaryReferenceSet ,
5
+ decodeAction ,
6
+ decodeReply ,
7
+ loadServerAction ,
8
+ renderToReadableStream ,
9
+ // @ts -expect-error
10
+ } from "react-server-dom-parcel/server.edge" ;
11
+ import { unstable_matchRSCServerRequest as matchRSCServerRequest } from "react-router" ;
12
+
13
+ import routes from "virtual:react-router/routes" ;
14
+
15
+ import "./entry.browser.tsx" ;
16
+
17
+ export function fetchServer ( request : Request ) {
18
+ return matchRSCServerRequest ( {
19
+ createTemporaryReferenceSet,
20
+ decodeAction,
21
+ decodeReply,
22
+ loadServerAction,
23
+ request,
24
+ routes,
25
+ generateResponse ( match ) {
26
+ return new Response ( renderToReadableStream ( match . payload ) , {
27
+ status : match . statusCode ,
28
+ headers : match . headers ,
29
+ } ) ;
30
+ } ,
31
+ } ) ;
32
+ }
Original file line number Diff line number Diff line change 1
- import requestHandler from "virtual:react-router/request-handler" ;
1
+ import * as React from "react" ;
2
+ // @ts -expect-error - no types
3
+ import { renderToReadableStream } from "react-dom/server.edge" assert { env : "react-client" } ;
4
+ import {
5
+ unstable_routeRSCServerRequest ,
6
+ unstable_RSCStaticRouter ,
7
+ } from "react-router" assert { env : "react-client" } ;
8
+ // @ts -expect-error
9
+ import { createFromReadableStream } from "react-server-dom-parcel/client.edge" assert { env : "react-client" } ;
2
10
3
- export { requestHandler } ;
11
+ import { fetchServer } from "./entry.rsc" assert { env : "react-server" } ;
12
+
13
+ export const requestHandler = async ( request : Request ) => {
14
+ return unstable_routeRSCServerRequest ( {
15
+ request,
16
+ fetchServer,
17
+ createFromReadableStream,
18
+ async renderHTML ( getPayload ) {
19
+ return await renderToReadableStream (
20
+ React . createElement ( unstable_RSCStaticRouter , { getPayload } ) ,
21
+ {
22
+ bootstrapScriptContent : (
23
+ fetchServer as unknown as { bootstrapScript : string }
24
+ ) . bootstrapScript ,
25
+ }
26
+ ) ;
27
+ } ,
28
+ } ) ;
29
+ } ;
You can’t perform that action at this time.
0 commit comments