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

Function prerender

packages/react-dom/src/server/ReactDOMFizzStaticNode.js:192–285  ·  view source on GitHub ↗
(
  children: ReactNodeList,
  options?: Omit<Options, 'onHeaders'> & {
    onHeaders?: (headers: Headers) => void,
  },
)

Source from the content-addressed store, hash-verified

190}
191
192function prerender(
193 children: ReactNodeList,
194 options?: Omit<Options, 'onHeaders'> & {
195 onHeaders?: (headers: Headers) => void,
196 },
197): Promise<{
198 postponed: null | PostponedState,
199 prelude: ReadableStream,
200}> {
201 return new Promise((resolve, reject) => {
202 const onFatalError = reject;
203
204 function onAllReady() {
205 let writable: Writable;
206 const stream = new ReadableStream(
207 {
208 type: 'bytes',
209 start: (controller): ?Promise<void> => {
210 writable =
211 createFakeWritableFromReadableStreamController(controller);
212 },
213 pull: (controller): ?Promise<void> => {
214 startFlowing(request, writable);
215 },
216 cancel: (reason): ?Promise<void> => {
217 stopFlowing(request);
218 abort(request, reason);
219 },
220 },
221 // $FlowFixMe[prop-missing] size() methods are not allowed on byte streams.
222 {highWaterMark: 0},
223 );
224
225 const result =
226 enablePostpone || enableHalt
227 ? {
228 postponed: getPostponedState(request),
229 prelude: stream,
230 }
231 : ({
232 prelude: stream,
233 }: any);
234 resolve(result);
235 }
236
237 const onHeaders = options ? options.onHeaders : undefined;
238 let onHeadersImpl;
239 if (onHeaders) {
240 onHeadersImpl = (headersDescriptor: HeadersDescriptor) => {
241 onHeaders(new Headers(headersDescriptor));
242 };
243 }
244 const resources = createResumableState(
245 options ? options.identifierPrefix : undefined,
246 options ? options.unstable_externalRuntimeSrc : undefined,
247 options ? options.bootstrapScriptContent : undefined,
248 options ? options.bootstrapScripts : undefined,
249 options ? options.bootstrapModules : undefined,

Callers

nothing calls this directly

Calls 7

createResumableStateFunction · 0.90
createPrerenderRequestFunction · 0.90
createRenderStateFunction · 0.90
createRootFormatContextFunction · 0.90
abortFunction · 0.90
startWorkFunction · 0.90
onHeadersFunction · 0.50

Tested by

no test coverage detected