ReactDOMServerFB.js — react Source File
Architecture documentation for ReactDOMServerFB.js, a javascript file in the react codebase. 5 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR d055cb24_73d6_ffe8_0232_7ee0d7126941["ReactDOMServerFB.js"] d8f20c67_f5fa_0f0a_c967_c41fd9ffce07["ReactTypes"] d055cb24_73d6_ffe8_0232_7ee0d7126941 --> d8f20c67_f5fa_0f0a_c967_c41fd9ffce07 ca40cfc0_4531_f3fa_7600_53b0400a208c["ReactFizzServer"] d055cb24_73d6_ffe8_0232_7ee0d7126941 --> ca40cfc0_4531_f3fa_7600_53b0400a208c a32ef50b_1b7d_cd2b_b3ca_369cc41a517f["ReactServerStreamConfig"] d055cb24_73d6_ffe8_0232_7ee0d7126941 --> a32ef50b_1b7d_cd2b_b3ca_369cc41a517f 0007d323_0c7d_faa0_6434_4c73e7b3d66e["ReactFizzConfigDOM"] d055cb24_73d6_ffe8_0232_7ee0d7126941 --> 0007d323_0c7d_faa0_6434_4c73e7b3d66e 32b7cc1b_f9ba_d1ed_91c2_d9ab41454fe3["ReactFizzConfig"] d055cb24_73d6_ffe8_0232_7ee0d7126941 --> 32b7cc1b_f9ba_d1ed_91c2_d9ab41454fe3 style d055cb24_73d6_ffe8_0232_7ee0d7126941 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
*/
import type {ReactNodeList} from 'shared/ReactTypes';
import type {Request} from 'react-server/src/ReactFizzServer';
import type {Destination} from 'react-server/src/ReactServerStreamConfig';
import type {BootstrapScriptDescriptor} from 'react-dom-bindings/src/server/ReactFizzConfigDOM';
import {
createRequest,
startWork,
performWork,
startFlowing,
abort,
} from 'react-server/src/ReactFizzServer';
import {
createResumableState,
createRenderState,
createRootFormatContext,
} from 'react-server/src/ReactFizzConfig';
type Options = {
identifierPrefix?: string,
bootstrapScriptContent?: string,
bootstrapScripts: Array<string>,
bootstrapModules: Array<string>,
progressiveChunkSize?: number,
onError: (error: mixed) => void,
unstable_externalRuntimeSrc?: string | BootstrapScriptDescriptor,
};
opaque type Stream = {
destination: Destination,
request: Request,
};
function renderToStream(children: ReactNodeList, options: Options): Stream {
const destination = {
buffer: '',
done: false,
fatal: false,
error: null,
};
const resumableState = createResumableState(
options ? options.identifierPrefix : undefined,
options ? options.unstable_externalRuntimeSrc : undefined,
options ? options.bootstrapScriptContent : undefined,
options ? options.bootstrapScripts : undefined,
options ? options.bootstrapModules : undefined,
);
const request = createRequest(
children,
resumableState,
createRenderState(
resumableState,
undefined,
options ? options.unstable_externalRuntimeSrc : undefined,
),
createRootFormatContext(undefined),
options ? options.progressiveChunkSize : undefined,
options.onError,
undefined,
undefined,
);
startWork(request);
if (destination.fatal) {
throw destination.error;
}
return {
destination,
request,
};
}
function abortStream(stream: Stream, reason: mixed): void {
abort(stream.request, reason);
}
function renderNextChunk(stream: Stream): string {
const {request, destination} = stream;
performWork(request);
startFlowing(request, destination);
if (destination.fatal) {
throw destination.error;
}
const chunk = destination.buffer;
destination.buffer = '';
return chunk;
}
function hasFinished(stream: Stream): boolean {
return stream.destination.done;
}
function debug(stream: Stream): any {
// convert to any to silence flow errors from opaque type
const request = (stream.request: any);
return {
pendingRootTasks: request.pendingRootTasks,
clientRenderedBoundaries: request.clientRenderedBoundaries.length,
completedBoundaries: request.completedBoundaries.length,
partialBoundaries: request.partialBoundaries.length,
allPendingTasks: request.allPendingTasks,
pingedTasks: request.pingedTasks.length,
};
}
export {renderToStream, renderNextChunk, hasFinished, abortStream, debug};
Domain
Subdomains
Dependencies
- ReactFizzConfig
- ReactFizzConfigDOM
- ReactFizzServer
- ReactServerStreamConfig
- ReactTypes
Source
Frequently Asked Questions
What does ReactDOMServerFB.js do?
ReactDOMServerFB.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain, Validation subdomain.
What functions are defined in ReactDOMServerFB.js?
ReactDOMServerFB.js defines 6 function(s): Options.onError, abortStream, debug, hasFinished, renderNextChunk, renderToStream.
What does ReactDOMServerFB.js depend on?
ReactDOMServerFB.js imports 5 module(s): ReactFizzConfig, ReactFizzConfigDOM, ReactFizzServer, ReactServerStreamConfig, ReactTypes.
Where is ReactDOMServerFB.js in the architecture?
ReactDOMServerFB.js is located at packages/react-server-dom-fb/src/ReactDOMServerFB.js (domain: BabelCompiler, subdomain: Validation, directory: packages/react-server-dom-fb/src).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free