MCPcopy
hub / github.com/facebook/react / render

Function render

fixtures/flight-parcel/src/server.tsx:52–84  ·  view source on GitHub ↗
(
  req: ExpressRequest,
  res: ExpressResponse,
  component: ReactElement,
  actionResult?: any,
)

Source from the content-addressed store, hash-verified

50});
51
52async function render(
53 req: ExpressRequest,
54 res: ExpressResponse,
55 component: ReactElement,
56 actionResult?: any,
57) {
58 // Render RSC payload.
59 let root: any = component;
60 if (actionResult) {
61 root = {result: actionResult, root};
62 }
63 let stream = renderToReadableStream(root);
64 if (req.accepts('text/html')) {
65 res.setHeader('Content-Type', 'text/html');
66
67 // Use client react to render the RSC payload to HTML.
68 let [s1, s2] = stream.tee();
69 let data: Promise<ReactElement>;
70 function Content() {
71 data ??= createFromReadableStream<ReactElement>(s1);
72 return ReactClient.use(data);
73 }
74
75 let htmlStream = await renderHTMLToReadableStream(<Content />, {
76 bootstrapScriptContent: (Todos as any).bootstrapScript,
77 });
78 let response = htmlStream.pipeThrough(injectRSCPayload(s2));
79 Readable.fromWeb(response as NodeReadableStream).pipe(res);
80 } else {
81 res.set('Content-Type', 'text/x-component');
82 Readable.fromWeb(stream as NodeReadableStream).pipe(res);
83 }
84}
85
86// Handle server actions.
87async function handleAction(

Callers 2

server.tsxFile · 0.70
handleActionFunction · 0.70

Calls 2

renderToReadableStreamFunction · 0.90
setMethod · 0.80

Tested by

no test coverage detected