From 5392e755deac6d6cf46f308f2176f61bf35d1ffe Mon Sep 17 00:00:00 2001 From: Hendrik Liebau Date: Thu, 9 Mar 2023 10:19:16 +0100 Subject: [PATCH] Clean up inconsistent naming in Flight implementation, part 1 Since `ClientManifest` and `SSRManifest` are now clearly differentiated in their structure (via #26300) and type names (via #26351), this opened up the opportunity to clean up some inconsistencies in how parameters, variables and properties were named (e.g. `config`, `bundlerConfig`, `moduleMap`, `webpackMap`, ...). To improve readability and avoid confusion between the two different types of objects we now always name them either `clientManifest` or `ssrManifest`. --- fixtures/flight/server/global.js | 6 +-- fixtures/flight/server/region.js | 12 ++--- .../react-client/src/ReactFlightClient.js | 8 ++-- .../src/ReactFlightClientStream.js | 4 +- .../src/ReactNoopFlightClient.js | 2 +- .../src/ReactNoopFlightServer.js | 14 +++--- .../ReactFlightDOMRelayClientHostConfig.js | 2 +- .../src/ReactFlightDOMRelayServer.js | 4 +- .../ReactFlightDOMRelayServerHostConfig.js | 22 +++++----- .../ReactFlightDOMRelayServerIntegration.js | 4 +- .../src/ReactFlightClientNodeBundlerConfig.js | 4 +- .../ReactFlightClientWebpackBundlerConfig.js | 6 +-- .../src/ReactFlightDOMClientEdge.js | 4 +- .../src/ReactFlightDOMClientNode.js | 4 +- .../src/ReactFlightDOMServerBrowser.js | 4 +- .../src/ReactFlightDOMServerEdge.js | 4 +- .../src/ReactFlightDOMServerNode.js | 4 +- .../ReactFlightServerWebpackBundlerConfig.js | 14 +++--- .../src/ReactFlightWebpackPlugin.js | 2 +- .../src/__tests__/ReactFlightDOM-test.js | 44 +++++++++---------- .../__tests__/ReactFlightDOMBrowser-test.js | 18 ++++---- .../src/__tests__/ReactFlightDOMEdge-test.js | 14 +++--- .../src/__tests__/ReactFlightDOMNode-test.js | 10 ++--- .../ReactFlightNativeRelayClientHostConfig.js | 2 +- .../src/ReactFlightNativeRelayServer.js | 4 +- .../ReactFlightNativeRelayServerHostConfig.js | 22 +++++----- ...ReactFlightNativeRelayServerIntegration.js | 4 +- .../react-server/src/ReactFlightServer.js | 12 ++--- scripts/flow/react-relay-hooks.js | 8 ++-- 29 files changed, 132 insertions(+), 130 deletions(-) diff --git a/fixtures/flight/server/global.js b/fixtures/flight/server/global.js index bf77e2a9aff82..e2bcf9e892051 100644 --- a/fixtures/flight/server/global.js +++ b/fixtures/flight/server/global.js @@ -122,8 +122,8 @@ app.all('/', async function (req, res, next) { virtualFs = fs; buildPath = path.join(__dirname, '../build/'); } - // Read the module map from the virtual file system. - const moduleMap = JSON.parse( + // Read the SSR manifest from the virtual file system. + const ssrManifest = JSON.parse( await virtualFs.readFile( path.join(buildPath, 'react-ssr-manifest.json'), 'utf8' @@ -140,7 +140,7 @@ app.all('/', async function (req, res, next) { // For HTML, we're a "client" emulator that runs the client code, // so we start by consuming the RSC payload. This needs a module // map that reverse engineers the client-side path to the SSR path. - const root = await createFromNodeStream(rscResponse, moduleMap); + const root = await createFromNodeStream(rscResponse, ssrManifest); // Render it into HTML by resolving the client components res.set('Content-type', 'text/html'); const {pipe} = renderToPipeableStream(root, { diff --git a/fixtures/flight/server/region.js b/fixtures/flight/server/region.js index a0f0cab45b77e..fe2d34b0fe21b 100644 --- a/fixtures/flight/server/region.js +++ b/fixtures/flight/server/region.js @@ -51,11 +51,11 @@ app.get('/', async function (req, res) { // const m = require('../src/App.js'); const m = await import('../src/App.js'); - let moduleMap; + let clientManifest; let mainCSSChunks; if (process.env.NODE_ENV === 'development') { - // Read the module map from the HMR server in development. - moduleMap = await ( + // Read the client manifest from the HMR server in development. + clientManifest = await ( await fetch('http://localhost:3000/react-client-manifest.json') ).json(); mainCSSChunks = ( @@ -64,8 +64,8 @@ app.get('/', async function (req, res) { ).json() ).main.css; } else { - // Read the module map from the static build in production. - moduleMap = JSON.parse( + // Read the client manifest from the static build in production. + clientManifest = JSON.parse( await readFile( path.resolve(__dirname, `../build/react-client-manifest.json`), 'utf8' @@ -90,7 +90,7 @@ app.get('/', async function (req, res) { ), React.createElement(App), ]; - const {pipe} = renderToPipeableStream(root, moduleMap); + const {pipe} = renderToPipeableStream(root, clientManifest); pipe(res); }); diff --git a/packages/react-client/src/ReactFlightClient.js b/packages/react-client/src/ReactFlightClient.js index fe5532de5c339..7b3ca6d98391c 100644 --- a/packages/react-client/src/ReactFlightClient.js +++ b/packages/react-client/src/ReactFlightClient.js @@ -149,7 +149,7 @@ Chunk.prototype.then = function ( }; export type ResponseBase = { - _bundlerConfig: SSRManifest, + _ssrManifest: SSRManifest, _callServer: CallServerCallback, _chunks: Map>, ... @@ -611,12 +611,12 @@ function missingCall() { } export function createResponse( - bundlerConfig: SSRManifest, + ssrManifest: SSRManifest, callServer: void | CallServerCallback, ): ResponseBase { const chunks: Map> = new Map(); const response = { - _bundlerConfig: bundlerConfig, + _ssrManifest: ssrManifest, _callServer: callServer !== undefined ? callServer : missingCall, _chunks: chunks, }; @@ -649,7 +649,7 @@ export function resolveModule( model, ); const clientReference = resolveClientReference<$FlowFixMe>( - response._bundlerConfig, + response._ssrManifest, clientReferenceMetadata, ); diff --git a/packages/react-client/src/ReactFlightClientStream.js b/packages/react-client/src/ReactFlightClientStream.js index 56772ec4a42b3..fc4a34c2c5e5e 100644 --- a/packages/react-client/src/ReactFlightClientStream.js +++ b/packages/react-client/src/ReactFlightClientStream.js @@ -121,13 +121,13 @@ function createFromJSONCallback(response: Response) { } export function createResponse( - bundlerConfig: SSRManifest, + ssrManifest: SSRManifest, callServer: void | CallServerCallback, ): Response { // NOTE: CHECK THE COMPILER OUTPUT EACH TIME YOU CHANGE THIS. // It should be inlined to one object literal but minor changes can break it. const stringDecoder = supportsBinaryStreams ? createStringDecoder() : null; - const response: any = createResponseBase(bundlerConfig, callServer); + const response: any = createResponseBase(ssrManifest, callServer); response._partialRow = ''; if (supportsBinaryStreams) { response._stringDecoder = stringDecoder; diff --git a/packages/react-noop-renderer/src/ReactNoopFlightClient.js b/packages/react-noop-renderer/src/ReactNoopFlightClient.js index 5cb6e20e532f3..c70f4b7e2b445 100644 --- a/packages/react-noop-renderer/src/ReactNoopFlightClient.js +++ b/packages/react-noop-renderer/src/ReactNoopFlightClient.js @@ -22,7 +22,7 @@ type Source = Array; const {createResponse, processStringChunk, getRoot, close} = ReactFlightClient({ supportsBinaryStreams: false, - resolveClientReference(bundlerConfig: null, idx: string) { + resolveClientReference(ssrManifest: null, idx: string) { return idx; }, preloadModule(idx: string) {}, diff --git a/packages/react-noop-renderer/src/ReactNoopFlightServer.js b/packages/react-noop-renderer/src/ReactNoopFlightServer.js index 52794a6221c3f..2a6428bb3353c 100644 --- a/packages/react-noop-renderer/src/ReactNoopFlightServer.js +++ b/packages/react-noop-renderer/src/ReactNoopFlightServer.js @@ -54,14 +54,14 @@ const ReactNoopFlightServer = ReactFlightServer({ isServerReference(reference: Object): boolean { return reference.$$typeof === Symbol.for('react.server.reference'); }, - getClientReferenceKey(reference: Object): Object { - return reference; + getClientReferenceKey(clientReference: Object): Object { + return clientReference; }, resolveClientReferenceMetadata( - config: void, - reference: {$$typeof: symbol, value: any}, + clientManifest: void, + clientReference: {$$typeof: symbol, value: any}, ) { - return saveModule(reference.value); + return saveModule(clientReference.value); }, }); @@ -73,10 +73,10 @@ type Options = { function render(model: ReactClientValue, options?: Options): Destination { const destination: Destination = []; - const bundlerConfig = undefined; + const clientManifest = undefined; const request = ReactNoopFlightServer.createRequest( model, - bundlerConfig, + clientManifest, options ? options.onError : undefined, options ? options.context : undefined, options ? options.identifierPrefix : undefined, diff --git a/packages/react-server-dom-relay/src/ReactFlightDOMRelayClientHostConfig.js b/packages/react-server-dom-relay/src/ReactFlightDOMRelayClientHostConfig.js index 1bf240428f5f0..9f64dafffad7d 100644 --- a/packages/react-server-dom-relay/src/ReactFlightDOMRelayClientHostConfig.js +++ b/packages/react-server-dom-relay/src/ReactFlightDOMRelayClientHostConfig.js @@ -38,7 +38,7 @@ export type UninitializedModel = JSONValue; export type Response = ResponseBase; export function resolveClientReference( - bundlerConfig: SSRManifest, + ssrManifest: SSRManifest, metadata: ClientReferenceMetadata, ): ClientReference { return resolveClientReferenceImpl(metadata); diff --git a/packages/react-server-dom-relay/src/ReactFlightDOMRelayServer.js b/packages/react-server-dom-relay/src/ReactFlightDOMRelayServer.js index 7ecd37cca3c69..ae4b323df8fa2 100644 --- a/packages/react-server-dom-relay/src/ReactFlightDOMRelayServer.js +++ b/packages/react-server-dom-relay/src/ReactFlightDOMRelayServer.js @@ -27,12 +27,12 @@ type Options = { function render( model: ReactClientValue, destination: Destination, - config: ClientManifest, + clientManifest: ClientManifest, options?: Options, ): void { const request = createRequest( model, - config, + clientManifest, options ? options.onError : undefined, undefined, // not currently set up to supply context overrides options ? options.identifierPrefix : undefined, diff --git a/packages/react-server-dom-relay/src/ReactFlightDOMRelayServerHostConfig.js b/packages/react-server-dom-relay/src/ReactFlightDOMRelayServerHostConfig.js index 0910af6a01e1c..6762179bbb49c 100644 --- a/packages/react-server-dom-relay/src/ReactFlightDOMRelayServerHostConfig.js +++ b/packages/react-server-dom-relay/src/ReactFlightDOMRelayServerHostConfig.js @@ -26,7 +26,7 @@ export type ServerReferenceId = {}; import type { Destination, - BundlerConfig as ClientManifest, + ClientManifest, ClientReferenceMetadata, } from 'ReactFlightDOMRelayServerIntegration'; @@ -40,7 +40,7 @@ import { export type { Destination, - BundlerConfig as ClientManifest, + ClientManifest, ClientReferenceMetadata, } from 'ReactFlightDOMRelayServerIntegration'; @@ -55,30 +55,30 @@ export function isServerReference(reference: Object): boolean { export type ClientReferenceKey = ClientReference; export function getClientReferenceKey( - reference: ClientReference, + clientReference: ClientReference, ): ClientReferenceKey { // We use the reference object itself as the key because we assume the // object will be cached by the bundler runtime. - return reference; + return clientReference; } export function resolveClientReferenceMetadata( - config: ClientManifest, - resource: ClientReference, + clientManifest: ClientManifest, + clientReference: ClientReference, ): ClientReferenceMetadata { - return resolveClientReferenceMetadataImpl(config, resource); + return resolveClientReferenceMetadataImpl(clientManifest, clientReference); } export function getServerReferenceId( - config: ClientManifest, - resource: ServerReference, + clientManifest: ClientManifest, + serverReference: ServerReference, ): ServerReferenceId { throw new Error('Not implemented.'); } export function getServerReferenceBoundArguments( - config: ClientManifest, - resource: ServerReference, + clientManifest: ClientManifest, + serverReference: ServerReference, ): Array { throw new Error('Not implemented.'); } diff --git a/packages/react-server-dom-relay/src/__mocks__/ReactFlightDOMRelayServerIntegration.js b/packages/react-server-dom-relay/src/__mocks__/ReactFlightDOMRelayServerIntegration.js index 769e61b1adc25..f9255a2c17744 100644 --- a/packages/react-server-dom-relay/src/__mocks__/ReactFlightDOMRelayServerIntegration.js +++ b/packages/react-server-dom-relay/src/__mocks__/ReactFlightDOMRelayServerIntegration.js @@ -12,8 +12,8 @@ const ReactFlightDOMRelayServerIntegration = { destination.push(json); }, close(destination) {}, - resolveClientReferenceMetadata(config, resource) { - return resource._moduleId; + resolveClientReferenceMetadata(clientManifest, clientReference) { + return clientReference._moduleId; }, }; diff --git a/packages/react-server-dom-webpack/src/ReactFlightClientNodeBundlerConfig.js b/packages/react-server-dom-webpack/src/ReactFlightClientNodeBundlerConfig.js index d7bc2e2897bd4..e54060d50ceee 100644 --- a/packages/react-server-dom-webpack/src/ReactFlightClientNodeBundlerConfig.js +++ b/packages/react-server-dom-webpack/src/ReactFlightClientNodeBundlerConfig.js @@ -32,10 +32,10 @@ export opaque type ClientReference = { }; export function resolveClientReference( - bundlerConfig: SSRManifest, + ssrManifest: SSRManifest, metadata: ClientReferenceMetadata, ): ClientReference { - const resolvedModuleData = bundlerConfig[metadata.id][metadata.name]; + const resolvedModuleData = ssrManifest[metadata.id][metadata.name]; return resolvedModuleData; } diff --git a/packages/react-server-dom-webpack/src/ReactFlightClientWebpackBundlerConfig.js b/packages/react-server-dom-webpack/src/ReactFlightClientWebpackBundlerConfig.js index 739546cb378f3..8fd7e3b46891a 100644 --- a/packages/react-server-dom-webpack/src/ReactFlightClientWebpackBundlerConfig.js +++ b/packages/react-server-dom-webpack/src/ReactFlightClientWebpackBundlerConfig.js @@ -30,11 +30,11 @@ export opaque type ClientReferenceMetadata = { export opaque type ClientReference = ClientReferenceMetadata; export function resolveClientReference( - bundlerConfig: SSRManifest, + ssrManifest: SSRManifest, metadata: ClientReferenceMetadata, ): ClientReference { - if (bundlerConfig) { - const resolvedModuleData = bundlerConfig[metadata.id][metadata.name]; + if (ssrManifest) { + const resolvedModuleData = ssrManifest[metadata.id][metadata.name]; if (metadata.async) { return { id: resolvedModuleData.id, diff --git a/packages/react-server-dom-webpack/src/ReactFlightDOMClientEdge.js b/packages/react-server-dom-webpack/src/ReactFlightDOMClientEdge.js index 7eb7b50655654..e0637fed60362 100644 --- a/packages/react-server-dom-webpack/src/ReactFlightDOMClientEdge.js +++ b/packages/react-server-dom-webpack/src/ReactFlightDOMClientEdge.js @@ -30,12 +30,12 @@ function noServerCall() { } export type Options = { - moduleMap?: SSRManifest, + ssrManifest?: SSRManifest, }; function createResponseFromOptions(options: void | Options) { return createResponse( - options && options.moduleMap ? options.moduleMap : null, + options && options.ssrManifest ? options.ssrManifest : null, noServerCall, ); } diff --git a/packages/react-server-dom-webpack/src/ReactFlightDOMClientNode.js b/packages/react-server-dom-webpack/src/ReactFlightDOMClientNode.js index 09502a7bf5479..66eec12945dab 100644 --- a/packages/react-server-dom-webpack/src/ReactFlightDOMClientNode.js +++ b/packages/react-server-dom-webpack/src/ReactFlightDOMClientNode.js @@ -34,9 +34,9 @@ function noServerCall() { function createFromNodeStream( stream: Readable, - moduleMap: $NonMaybeType, + ssrManifest: $NonMaybeType, ): Thenable { - const response: Response = createResponse(moduleMap, noServerCall); + const response: Response = createResponse(ssrManifest, noServerCall); stream.on('data', chunk => { if (typeof chunk === 'string') { processStringChunk(response, chunk, 0); diff --git a/packages/react-server-dom-webpack/src/ReactFlightDOMServerBrowser.js b/packages/react-server-dom-webpack/src/ReactFlightDOMServerBrowser.js index 76eb5da99d159..c9c6725cc0c2c 100644 --- a/packages/react-server-dom-webpack/src/ReactFlightDOMServerBrowser.js +++ b/packages/react-server-dom-webpack/src/ReactFlightDOMServerBrowser.js @@ -27,12 +27,12 @@ type Options = { function renderToReadableStream( model: ReactClientValue, - webpackMap: ClientManifest, + clientManifest: ClientManifest, options?: Options, ): ReadableStream { const request = createRequest( model, - webpackMap, + clientManifest, options ? options.onError : undefined, options ? options.context : undefined, options ? options.identifierPrefix : undefined, diff --git a/packages/react-server-dom-webpack/src/ReactFlightDOMServerEdge.js b/packages/react-server-dom-webpack/src/ReactFlightDOMServerEdge.js index 76eb5da99d159..c9c6725cc0c2c 100644 --- a/packages/react-server-dom-webpack/src/ReactFlightDOMServerEdge.js +++ b/packages/react-server-dom-webpack/src/ReactFlightDOMServerEdge.js @@ -27,12 +27,12 @@ type Options = { function renderToReadableStream( model: ReactClientValue, - webpackMap: ClientManifest, + clientManifest: ClientManifest, options?: Options, ): ReadableStream { const request = createRequest( model, - webpackMap, + clientManifest, options ? options.onError : undefined, options ? options.context : undefined, options ? options.identifierPrefix : undefined, diff --git a/packages/react-server-dom-webpack/src/ReactFlightDOMServerNode.js b/packages/react-server-dom-webpack/src/ReactFlightDOMServerNode.js index 16a38a33a1673..ed2cd20a09551 100644 --- a/packages/react-server-dom-webpack/src/ReactFlightDOMServerNode.js +++ b/packages/react-server-dom-webpack/src/ReactFlightDOMServerNode.js @@ -40,12 +40,12 @@ type PipeableStream = { function renderToPipeableStream( model: ReactClientValue, - webpackMap: ClientManifest, + clientManifest: ClientManifest, options?: Options, ): PipeableStream { const request = createRequest( model, - webpackMap, + clientManifest, options ? options.onError : undefined, options ? options.context : undefined, options ? options.identifierPrefix : undefined, diff --git a/packages/react-server-dom-webpack/src/ReactFlightServerWebpackBundlerConfig.js b/packages/react-server-dom-webpack/src/ReactFlightServerWebpackBundlerConfig.js index 444f2c0b2a150..c80524d549a72 100644 --- a/packages/react-server-dom-webpack/src/ReactFlightServerWebpackBundlerConfig.js +++ b/packages/react-server-dom-webpack/src/ReactFlightServerWebpackBundlerConfig.js @@ -41,9 +41,11 @@ const CLIENT_REFERENCE_TAG = Symbol.for('react.client.reference'); const SERVER_REFERENCE_TAG = Symbol.for('react.server.reference'); export function getClientReferenceKey( - reference: ClientReference, + clientReference: ClientReference, ): ClientReferenceKey { - return reference.$$async ? reference.$$id + '#async' : reference.$$id; + return clientReference.$$async + ? clientReference.$$id + '#async' + : clientReference.$$id; } export function isClientReference(reference: Object): boolean { @@ -55,10 +57,10 @@ export function isServerReference(reference: Object): boolean { } export function resolveClientReferenceMetadata( - config: ClientManifest, + clientManifest: ClientManifest, clientReference: ClientReference, ): ClientReferenceMetadata { - const resolvedModuleData = config[clientReference.$$id]; + const resolvedModuleData = clientManifest[clientReference.$$id]; if (clientReference.$$async) { return { id: resolvedModuleData.id, @@ -72,14 +74,14 @@ export function resolveClientReferenceMetadata( } export function getServerReferenceId( - config: ClientManifest, + clientManifest: ClientManifest, serverReference: ServerReference, ): ServerReferenceId { return serverReference.$$id; } export function getServerReferenceBoundArguments( - config: ClientManifest, + clientManifest: ClientManifest, serverReference: ServerReference, ): null | Array { return serverReference.$$bound; diff --git a/packages/react-server-dom-webpack/src/ReactFlightWebpackPlugin.js b/packages/react-server-dom-webpack/src/ReactFlightWebpackPlugin.js index 5b19ee7d6f9a2..eca8fc6786182 100644 --- a/packages/react-server-dom-webpack/src/ReactFlightWebpackPlugin.js +++ b/packages/react-server-dom-webpack/src/ReactFlightWebpackPlugin.js @@ -213,7 +213,7 @@ export default class ReactFlightWebpackPlugin { if (clientFileNameFound === false) { compilation.warnings.push( new WebpackError( - `Client runtime at ${clientImportName} was not found. React Server Components module map file ${_this.clientManifestFilename} was not created.`, + `Client runtime at ${clientImportName} was not found. React Server Components client manifest file ${_this.clientManifestFilename} was not created.`, ), ); return; diff --git a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOM-test.js b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOM-test.js index bdde8502758d7..d464472ed51e0 100644 --- a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOM-test.js +++ b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOM-test.js @@ -22,7 +22,7 @@ let act; let use; let clientExports; let clientModuleError; -let webpackMap; +let clientManifest; let Stream; let React; let ReactDOMClient; @@ -38,7 +38,7 @@ describe('ReactFlightDOM', () => { const WebpackMock = require('./utils/WebpackMock'); clientExports = WebpackMock.clientExports; clientModuleError = WebpackMock.clientModuleError; - webpackMap = WebpackMock.webpackMap; + clientManifest = WebpackMock.webpackMap; Stream = require('stream'); React = require('react'); @@ -111,7 +111,7 @@ describe('ReactFlightDOM', () => { const {writable, readable} = getTestStream(); const {pipe} = ReactServerDOMWriter.renderToPipeableStream( , - webpackMap, + clientManifest, ); pipe(writable); const response = ReactServerDOMReader.createFromReadableStream(readable); @@ -161,7 +161,7 @@ describe('ReactFlightDOM', () => { const {writable, readable} = getTestStream(); const {pipe} = ReactServerDOMWriter.renderToPipeableStream( , - webpackMap, + clientManifest, ); pipe(writable); const response = ReactServerDOMReader.createFromReadableStream(readable); @@ -198,7 +198,7 @@ describe('ReactFlightDOM', () => { const {writable, readable} = getTestStream(); const {pipe} = ReactServerDOMWriter.renderToPipeableStream( , - webpackMap, + clientManifest, ); pipe(writable); const response = ReactServerDOMReader.createFromReadableStream(readable); @@ -233,7 +233,7 @@ describe('ReactFlightDOM', () => { const {writable, readable} = getTestStream(); const {pipe} = ReactServerDOMWriter.renderToPipeableStream( , - webpackMap, + clientManifest, ); pipe(writable); const response = ReactServerDOMReader.createFromReadableStream(readable); @@ -283,7 +283,7 @@ describe('ReactFlightDOM', () => { const {writable, readable} = getTestStream(); const {pipe} = ReactServerDOMWriter.renderToPipeableStream( , - webpackMap, + clientManifest, ); pipe(writable); const response = ReactServerDOMReader.createFromReadableStream(readable); @@ -321,7 +321,7 @@ describe('ReactFlightDOM', () => { const {writable, readable} = getTestStream(); const {pipe} = ReactServerDOMWriter.renderToPipeableStream( , - webpackMap, + clientManifest, ); pipe(writable); const response = ReactServerDOMReader.createFromReadableStream(readable); @@ -362,7 +362,7 @@ describe('ReactFlightDOM', () => { const {writable, readable} = getTestStream(); const {pipe} = ReactServerDOMWriter.renderToPipeableStream( , - webpackMap, + clientManifest, ); pipe(writable); const response = ReactServerDOMReader.createFromReadableStream(readable); @@ -401,7 +401,7 @@ describe('ReactFlightDOM', () => { const {writable, readable} = getTestStream(); const {pipe} = ReactServerDOMWriter.renderToPipeableStream( , - webpackMap, + clientManifest, ); pipe(writable); const response = ReactServerDOMReader.createFromReadableStream(readable); @@ -439,7 +439,7 @@ describe('ReactFlightDOM', () => { const {writable, readable} = getTestStream(); const {pipe} = ReactServerDOMWriter.renderToPipeableStream( , - webpackMap, + clientManifest, ); pipe(writable); const response = ReactServerDOMReader.createFromReadableStream(readable); @@ -594,7 +594,7 @@ describe('ReactFlightDOM', () => { const {writable, readable} = getTestStream(); const {pipe} = ReactServerDOMWriter.renderToPipeableStream( model, - webpackMap, + clientManifest, { onError(x) { reportedErrors.push(x); @@ -717,7 +717,7 @@ describe('ReactFlightDOM', () => { const stream1 = getTestStream(); const {pipe} = ReactServerDOMWriter.renderToPipeableStream( , - webpackMap, + clientManifest, ); pipe(stream1.writable); const response1 = ReactServerDOMReader.createFromReadableStream( @@ -745,7 +745,7 @@ describe('ReactFlightDOM', () => { const stream2 = getTestStream(); const {pipe: pipe2} = ReactServerDOMWriter.renderToPipeableStream( , - webpackMap, + clientManifest, ); pipe2(stream2.writable); const response2 = ReactServerDOMReader.createFromReadableStream( @@ -780,7 +780,7 @@ describe('ReactFlightDOM', () => {
, - webpackMap, + clientManifest, { onError(x) { reportedErrors.push(x); @@ -845,7 +845,7 @@ describe('ReactFlightDOM', () => {
, - webpackMap, + clientManifest, { onError(x) { reportedErrors.push(x); @@ -896,7 +896,7 @@ describe('ReactFlightDOM', () => {
, - webpackMap, + clientManifest, { onError(x) { reportedErrors.push(x); @@ -943,8 +943,8 @@ describe('ReactFlightDOM', () => { }); // We simulate a bug in the Webpack bundler which causes an error on the server. - for (const id in webpackMap) { - Object.defineProperty(webpackMap, id, { + for (const id in clientManifest) { + Object.defineProperty(clientManifest, id, { get: () => { throw new Error('bug in the bundler'); }, @@ -956,7 +956,7 @@ describe('ReactFlightDOM', () => {
, - webpackMap, + clientManifest, { onError(x) { reportedErrors.push(x.message); @@ -1034,7 +1034,7 @@ describe('ReactFlightDOM', () => { const {writable, readable} = getTestStream(); const {pipe} = ReactServerDOMWriter.renderToPipeableStream( , - webpackMap, + clientManifest, ); pipe(writable); const response = ReactServerDOMReader.createFromReadableStream(readable); @@ -1091,7 +1091,7 @@ describe('ReactFlightDOM', () => { const {writable, readable} = getTestStream(); const {pipe} = ReactServerDOMWriter.renderToPipeableStream( , - webpackMap, + clientManifest, { onError(x) { reportedErrors.push(x); diff --git a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMBrowser-test.js b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMBrowser-test.js index bc012126aeb9b..96ba5fd814e46 100644 --- a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMBrowser-test.js +++ b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMBrowser-test.js @@ -17,7 +17,7 @@ global.TextDecoder = require('util').TextDecoder; let clientExports; let serverExports; -let webpackMap; +let clientManifest; let webpackServerMap; let act; let React; @@ -34,7 +34,7 @@ describe('ReactFlightDOMBrowser', () => { const WebpackMock = require('./utils/WebpackMock'); clientExports = WebpackMock.clientExports; serverExports = WebpackMock.serverExports; - webpackMap = WebpackMock.webpackMap; + clientManifest = WebpackMock.webpackMap; webpackServerMap = WebpackMock.webpackServerMap; React = require('react'); ReactDOMClient = require('react-dom/client'); @@ -252,7 +252,7 @@ describe('ReactFlightDOMBrowser', () => { const stream = ReactServerDOMWriter.renderToReadableStream( model, - webpackMap, + clientManifest, { onError(x) { reportedErrors.push(x); @@ -391,7 +391,7 @@ describe('ReactFlightDOMBrowser', () => { const stream = ReactServerDOMWriter.renderToReadableStream( model, - webpackMap, + clientManifest, ); const reader = stream.getReader(); @@ -493,7 +493,7 @@ describe('ReactFlightDOMBrowser', () => {
, - webpackMap, + clientManifest, { signal: controller.signal, onError(x) { @@ -645,7 +645,7 @@ describe('ReactFlightDOMBrowser', () => { const reportedErrors = []; const stream = ReactServerDOMWriter.renderToReadableStream( , - webpackMap, + clientManifest, { onError(x) { reportedErrors.push(x); @@ -782,7 +782,7 @@ describe('ReactFlightDOMBrowser', () => { const stream = ReactServerDOMWriter.renderToReadableStream( , - webpackMap, + clientManifest, ); const response = ReactServerDOMReader.createFromReadableStream(stream, { @@ -824,7 +824,7 @@ describe('ReactFlightDOMBrowser', () => { const stream = ReactServerDOMWriter.renderToReadableStream( , - webpackMap, + clientManifest, ); const response = ReactServerDOMReader.createFromReadableStream(stream, { @@ -868,7 +868,7 @@ describe('ReactFlightDOMBrowser', () => { const stream = ReactServerDOMWriter.renderToReadableStream( , - webpackMap, + clientManifest, ); const response = ReactServerDOMReader.createFromReadableStream(stream, { diff --git a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMEdge-test.js b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMEdge-test.js index d08aafbcf2a19..d166228f7fa78 100644 --- a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMEdge-test.js +++ b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMEdge-test.js @@ -20,7 +20,7 @@ global.TextDecoder = require('util').TextDecoder; global.setTimeout = cb => cb(); let clientExports; -let webpackMap; +let clientManifest; let webpackModules; let React; let ReactDOMServer; @@ -33,7 +33,7 @@ describe('ReactFlightDOMEdge', () => { jest.resetModules(); const WebpackMock = require('./utils/WebpackMock'); clientExports = WebpackMock.clientExports; - webpackMap = WebpackMock.webpackMap; + clientManifest = WebpackMock.webpackMap; webpackModules = WebpackMock.webpackModules; React = require('react'); ReactDOMServer = require('react-dom/server.edge'); @@ -65,13 +65,13 @@ describe('ReactFlightDOMEdge', () => { const ClientComponentOnTheServer = clientExports(ClientComponent); // In the SSR bundle this module won't exist. We simulate this by deleting it. - const clientId = webpackMap[ClientComponentOnTheClient.$$id].id; + const clientId = clientManifest[ClientComponentOnTheClient.$$id].id; delete webpackModules[clientId]; // Instead, we have to provide a translation from the client meta data to the SSR // meta data. - const ssrMetadata = webpackMap[ClientComponentOnTheServer.$$id]; - const translationMap = { + const ssrMetadata = clientManifest[ClientComponentOnTheServer.$$id]; + const ssrManifest = { [clientId]: { '*': ssrMetadata, }, @@ -83,10 +83,10 @@ describe('ReactFlightDOMEdge', () => { const stream = ReactServerDOMWriter.renderToReadableStream( , - webpackMap, + clientManifest, ); const response = ReactServerDOMReader.createFromReadableStream(stream, { - moduleMap: translationMap, + ssrManifest, }); function ClientRoot() { diff --git a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMNode-test.js b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMNode-test.js index 615cff2db9765..ab56c1ee56134 100644 --- a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMNode-test.js +++ b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMNode-test.js @@ -14,7 +14,7 @@ global.setImmediate = cb => cb(); let clientExports; -let webpackMap; +let clientManifest; let webpackModules; let React; let ReactDOMServer; @@ -28,7 +28,7 @@ describe('ReactFlightDOMNode', () => { jest.resetModules(); const WebpackMock = require('./utils/WebpackMock'); clientExports = WebpackMock.clientExports; - webpackMap = WebpackMock.webpackMap; + clientManifest = WebpackMock.webpackMap; webpackModules = WebpackMock.webpackModules; React = require('react'); ReactDOMServer = require('react-dom/server.node'); @@ -67,12 +67,12 @@ describe('ReactFlightDOMNode', () => { const ClientComponentOnTheServer = clientExports(ClientComponent); // In the SSR bundle this module won't exist. We simulate this by deleting it. - const clientId = webpackMap[ClientComponentOnTheClient.$$id].id; + const clientId = clientManifest[ClientComponentOnTheClient.$$id].id; delete webpackModules[clientId]; // Instead, we have to provide a translation from the client meta data to the SSR // meta data. - const ssrMetadata = webpackMap[ClientComponentOnTheServer.$$id]; + const ssrMetadata = clientManifest[ClientComponentOnTheServer.$$id]; const translationMap = { [clientId]: { '*': ssrMetadata, @@ -85,7 +85,7 @@ describe('ReactFlightDOMNode', () => { const stream = ReactServerDOMWriter.renderToPipeableStream( , - webpackMap, + clientManifest, ); const readable = new Stream.PassThrough(); const response = ReactServerDOMReader.createFromNodeStream( diff --git a/packages/react-server-native-relay/src/ReactFlightNativeRelayClientHostConfig.js b/packages/react-server-native-relay/src/ReactFlightNativeRelayClientHostConfig.js index 8e7c18d31a3a9..d790e21325fb4 100644 --- a/packages/react-server-native-relay/src/ReactFlightNativeRelayClientHostConfig.js +++ b/packages/react-server-native-relay/src/ReactFlightNativeRelayClientHostConfig.js @@ -38,7 +38,7 @@ export type UninitializedModel = JSONValue; export type Response = ResponseBase; export function resolveClientReference( - bundlerConfig: SSRManifest, + ssrManifest: SSRManifest, metadata: ClientReferenceMetadata, ): ClientReference { return resolveClientReferenceImpl(metadata); diff --git a/packages/react-server-native-relay/src/ReactFlightNativeRelayServer.js b/packages/react-server-native-relay/src/ReactFlightNativeRelayServer.js index 5e049368f72f2..b44e2ea74d752 100644 --- a/packages/react-server-native-relay/src/ReactFlightNativeRelayServer.js +++ b/packages/react-server-native-relay/src/ReactFlightNativeRelayServer.js @@ -22,9 +22,9 @@ import { function render( model: ReactClientValue, destination: Destination, - config: ClientManifest, + clientManifest: ClientManifest, ): void { - const request = createRequest(model, config); + const request = createRequest(model, clientManifest); startWork(request); startFlowing(request, destination); } diff --git a/packages/react-server-native-relay/src/ReactFlightNativeRelayServerHostConfig.js b/packages/react-server-native-relay/src/ReactFlightNativeRelayServerHostConfig.js index 05f53e2049460..44ed725ceb6c0 100644 --- a/packages/react-server-native-relay/src/ReactFlightNativeRelayServerHostConfig.js +++ b/packages/react-server-native-relay/src/ReactFlightNativeRelayServerHostConfig.js @@ -23,7 +23,7 @@ export type ServerReferenceId = {}; import type { Destination, - BundlerConfig as ClientManifest, + ClientManifest, ClientReferenceMetadata, } from 'ReactFlightNativeRelayServerIntegration'; @@ -37,7 +37,7 @@ import { export type { Destination, - BundlerConfig as ClientManifest, + ClientManifest, ClientReferenceMetadata, } from 'ReactFlightNativeRelayServerIntegration'; @@ -52,30 +52,30 @@ export function isServerReference(reference: Object): boolean { export type ClientReferenceKey = ClientReference; export function getClientReferenceKey( - reference: ClientReference, + clientReference: ClientReference, ): ClientReferenceKey { // We use the reference object itself as the key because we assume the // object will be cached by the bundler runtime. - return reference; + return clientReference; } export function resolveClientReferenceMetadata( - config: ClientManifest, - resource: ClientReference, + clientManifest: ClientManifest, + clientReference: ClientReference, ): ClientReferenceMetadata { - return resolveClientReferenceMetadataImpl(config, resource); + return resolveClientReferenceMetadataImpl(clientManifest, clientReference); } export function getServerReferenceId( - config: ClientManifest, - resource: ServerReference, + clientManifest: ClientManifest, + serverReference: ServerReference, ): ServerReferenceId { throw new Error('Not implemented.'); } export function getServerReferenceBoundArguments( - config: ClientManifest, - resource: ServerReference, + clientManifest: ClientManifest, + serverReference: ServerReference, ): Array { throw new Error('Not implemented.'); } diff --git a/packages/react-server-native-relay/src/__mocks__/ReactFlightNativeRelayServerIntegration.js b/packages/react-server-native-relay/src/__mocks__/ReactFlightNativeRelayServerIntegration.js index 52371c59eaba0..d1d5b1c6f5a2f 100644 --- a/packages/react-server-native-relay/src/__mocks__/ReactFlightNativeRelayServerIntegration.js +++ b/packages/react-server-native-relay/src/__mocks__/ReactFlightNativeRelayServerIntegration.js @@ -12,8 +12,8 @@ const ReactFlightNativeRelayServerIntegration = { destination.push(json); }, close(destination) {}, - resolveClientReferenceMetadata(config, resource) { - return resource._moduleId; + resolveClientReferenceMetadata(clientManifest, clientReference) { + return clientReference._moduleId; }, }; diff --git a/packages/react-server/src/ReactFlightServer.js b/packages/react-server/src/ReactFlightServer.js index 2f82e024b67fb..85d5de59c3ec7 100644 --- a/packages/react-server/src/ReactFlightServer.js +++ b/packages/react-server/src/ReactFlightServer.js @@ -142,7 +142,7 @@ export type Request = { status: 0 | 1 | 2, fatalError: mixed, destination: null | Destination, - bundlerConfig: ClientManifest, + clientManifest: ClientManifest, cache: Map, nextChunkId: number, pendingChunks: number, @@ -175,7 +175,7 @@ const CLOSED = 2; export function createRequest( model: ReactClientValue, - bundlerConfig: ClientManifest, + clientManifest: ClientManifest, onError: void | ((error: mixed) => ?string), context?: Array<[string, ServerContextJSONValue]>, identifierPrefix?: string, @@ -196,7 +196,7 @@ export function createRequest( status: OPEN, fatalError: null, destination: null, - bundlerConfig, + clientManifest, cache: new Map(), nextChunkId: 0, pendingChunks: 0, @@ -571,7 +571,7 @@ function serializeClientReference( } try { const clientReferenceMetadata: ClientReferenceMetadata = - resolveClientReferenceMetadata(request.bundlerConfig, clientReference); + resolveClientReferenceMetadata(request.clientManifest, clientReference); request.pendingChunks++; const importId = request.nextChunkId++; emitImportChunk(request, importId, clientReferenceMetadata); @@ -614,14 +614,14 @@ function serializeServerReference( } const bound: null | Array = getServerReferenceBoundArguments( - request.bundlerConfig, + request.clientManifest, serverReference, ); const serverReferenceMetadata: { id: ServerReferenceId, bound: null | Promise>, } = { - id: getServerReferenceId(request.bundlerConfig, serverReference), + id: getServerReferenceId(request.clientManifest, serverReference), bound: bound ? Promise.resolve(bound) : null, }; request.pendingChunks++; diff --git a/scripts/flow/react-relay-hooks.js b/scripts/flow/react-relay-hooks.js index 62d2d13909cd6..f85da28528142 100644 --- a/scripts/flow/react-relay-hooks.js +++ b/scripts/flow/react-relay-hooks.js @@ -39,7 +39,7 @@ declare module 'ReactFlightDOMRelayServerIntegration' { import type {JSResourceReference} from 'JSResourceReference'; declare export opaque type Destination; - declare export opaque type BundlerConfig; + declare export opaque type ClientManifest; declare export function emitRow( destination: Destination, json: JSONValue, @@ -48,7 +48,7 @@ declare module 'ReactFlightDOMRelayServerIntegration' { declare export type ClientReferenceMetadata = JSONValue; declare export function resolveClientReferenceMetadata( - config: BundlerConfig, + clientManifest: ClientManifest, resourceReference: JSResourceReference, ): ClientReferenceMetadata; } @@ -72,7 +72,7 @@ declare module 'ReactFlightNativeRelayServerIntegration' { import type {JSResourceReference} from 'JSResourceReference'; declare export opaque type Destination; - declare export opaque type BundlerConfig; + declare export opaque type ClientManifest; declare export function emitRow( destination: Destination, json: JSONValue, @@ -81,7 +81,7 @@ declare module 'ReactFlightNativeRelayServerIntegration' { declare export type ClientReferenceMetadata = JSONValue; declare export function resolveClientReferenceMetadata( - config: BundlerConfig, + clientManifest: ClientManifest, resourceReference: JSResourceReference, ): ClientReferenceMetadata; }