[Flight] Add a Node.js Web Streams bundle for unbundled client/server for Webpack (#33442)

Like #33441 but for Flight.

This is just one of the many combinations needed. I'm just starting with
one.
This commit is contained in:
Sebastian Markbåge 2025-06-05 14:29:02 -04:00 committed by GitHub
parent b4477d3800
commit a5110b22f0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 167 additions and 13 deletions

View File

@ -0,0 +1,18 @@
/**
* 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
*/
export {default as rendererVersion} from 'shared/ReactVersion';
export const rendererPackageName = 'react-server-dom-webpack';
export * from 'react-client/src/ReactFlightClientStreamConfigWeb';
export * from 'react-client/src/ReactClientConsoleConfigServer';
export * from 'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerNode';
export * from 'react-server-dom-webpack/src/client/ReactFlightClientConfigTargetWebpackServer';
export * from 'react-dom-bindings/src/shared/ReactFlightClientConfigDOM';
export const usedWithSSR = true;

View File

@ -1,7 +1,28 @@
'use strict';
var n, w;
if (process.env.NODE_ENV === 'production') {
module.exports = require('./cjs/react-server-dom-webpack-client.node.unbundled.production.js');
n = require('./cjs/react-server-dom-webpack-client.node.unbundled.production.js');
w = require('./cjs/react-server-dom-webpack-client.node-webstreams.unbundled.production.js');
} else {
module.exports = require('./cjs/react-server-dom-webpack-client.node.unbundled.development.js');
n = require('./cjs/react-server-dom-webpack-client.node.unbundled.development.js');
w = require('./cjs/react-server-dom-webpack-client.node-webstreams.unbundled.development.js');
}
exports.registerServerReference = function (r, i, e) {
return w.registerServerReference(n.registerServerReference(r, i, e), i, e);
};
exports.createServerReference = function (i, c, e, d, f) {
return w.registerServerReference(
n.createServerReference(i, c, e, d, f),
i,
e
);
};
exports.createFromNodeStream = n.createFromNodeStream;
exports.createFromFetch = w.createFromFetch;
exports.createFromReadableStream = w.createFromReadableStream;
exports.createTemporaryReferenceSet = w.createTemporaryReferenceSet;
exports.encodeReply = w.encodeReply;

View File

@ -1,10 +1,12 @@
'use strict';
var s;
var s, w;
if (process.env.NODE_ENV === 'production') {
s = require('./cjs/react-server-dom-webpack-server.node.unbundled.production.js');
w = require('./cjs/react-server-dom-webpack-server.node-webstreams.unbundled.production.js');
} else {
s = require('./cjs/react-server-dom-webpack-server.node.unbundled.development.js');
w = require('./cjs/react-server-dom-webpack-server.node-webstreams.unbundled.development.js');
}
exports.renderToPipeableStream = s.renderToPipeableStream;
@ -16,3 +18,6 @@ exports.registerServerReference = s.registerServerReference;
exports.registerClientReference = s.registerClientReference;
exports.createClientModuleProxy = s.createClientModuleProxy;
exports.createTemporaryReferenceSet = s.createTemporaryReferenceSet;
exports.renderToReadableStream = w.renderToReadableStream;
exports.decodeReplyFromAsyncIterable = w.decodeReplyFromAsyncIterable;

View File

@ -0,0 +1,10 @@
/**
* 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
*/
export * from './ReactFlightDOMClientBrowser';

View File

@ -0,0 +1,10 @@
/**
* 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
*/
export * from './ReactFlightDOMClientEdge';

View File

@ -0,0 +1,10 @@
/**
* 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
*/
export * from './ReactFlightDOMClientEdge';

View File

@ -0,0 +1,10 @@
/**
* 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
*/
export * from './ReactFlightDOMClientNode';

View File

@ -0,0 +1,10 @@
/**
* 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
*/
export * from './ReactFlightDOMClientNode';

View File

@ -0,0 +1,21 @@
/**
* 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
*/
export {
renderToReadableStream,
prerender as unstable_prerender,
decodeReply,
decodeReplyFromAsyncIterable,
decodeAction,
decodeFormState,
registerServerReference,
registerClientReference,
createClientModuleProxy,
createTemporaryReferenceSet,
} from './ReactFlightDOMServerEdge';

View File

@ -484,6 +484,18 @@ const bundles = [
wrapWithModuleBoundaries: false,
externals: ['react', 'util', 'crypto', 'async_hooks', 'react-dom'],
},
{
bundleTypes: [NODE_DEV, NODE_PROD],
moduleType: RENDERER,
entry:
'react-server-dom-webpack/src/server/react-flight-dom-server.node-webstreams.unbundled',
name: 'react-server-dom-webpack-server.node-webstreams.unbundled',
condition: 'react-server',
global: 'ReactServerDOMServer',
minifyWithProdErrorCodes: false,
wrapWithModuleBoundaries: false,
externals: ['react', 'util', 'crypto', 'async_hooks', 'react-dom'],
},
{
bundleTypes: [NODE_DEV, NODE_PROD],
moduleType: RENDERER,
@ -500,7 +512,9 @@ const bundles = [
{
bundleTypes: [NODE_DEV, NODE_PROD],
moduleType: RENDERER,
entry: 'react-server-dom-webpack/client.browser',
entry:
'react-server-dom-webpack/src/client/react-flight-dom-client.browser',
name: 'react-server-dom-webpack-client.browser',
global: 'ReactServerDOMClient',
minifyWithProdErrorCodes: false,
wrapWithModuleBoundaries: false,
@ -509,7 +523,8 @@ const bundles = [
{
bundleTypes: [NODE_DEV, NODE_PROD],
moduleType: RENDERER,
entry: 'react-server-dom-webpack/client.node',
entry: 'react-server-dom-webpack/src/client/react-flight-dom-client.node',
name: 'react-server-dom-webpack-client.node',
global: 'ReactServerDOMClient',
minifyWithProdErrorCodes: false,
wrapWithModuleBoundaries: false,
@ -518,7 +533,9 @@ const bundles = [
{
bundleTypes: [NODE_DEV, NODE_PROD],
moduleType: RENDERER,
entry: 'react-server-dom-webpack/client.node.unbundled',
entry:
'react-server-dom-webpack/src/client/react-flight-dom-client.node.unbundled',
name: 'react-server-dom-webpack-client.node.unbundled',
global: 'ReactServerDOMClient',
minifyWithProdErrorCodes: false,
wrapWithModuleBoundaries: false,
@ -527,7 +544,19 @@ const bundles = [
{
bundleTypes: [NODE_DEV, NODE_PROD],
moduleType: RENDERER,
entry: 'react-server-dom-webpack/client.edge',
entry:
'react-server-dom-webpack/src/client/react-flight-dom-client.node-webstreams.unbundled',
name: 'react-server-dom-webpack-client.node-webstreams.unbundled',
global: 'ReactServerDOMClient',
minifyWithProdErrorCodes: false,
wrapWithModuleBoundaries: false,
externals: ['react', 'react-dom', 'util', 'crypto'],
},
{
bundleTypes: [NODE_DEV, NODE_PROD],
moduleType: RENDERER,
entry: 'react-server-dom-webpack/src/client/react-flight-dom-client.edge',
name: 'react-server-dom-webpack-client.edge',
global: 'ReactServerDOMClient',
minifyWithProdErrorCodes: false,
wrapWithModuleBoundaries: false,

View File

@ -17,7 +17,7 @@ module.exports = [
'react-dom/src/server/react-dom-server.browser.js',
'react-dom/static.browser',
'react-dom/unstable_server-external-runtime',
'react-server-dom-webpack/client.browser',
'react-server-dom-webpack/src/client/react-flight-dom-client.browser',
'react-server-dom-webpack/src/server/react-flight-dom-server.browser',
],
paths: [
@ -43,6 +43,7 @@ module.exports = [
'react-server-dom-webpack/src/client/ReactFlightDOMClientBrowser.js', // react-server-dom-webpack/client.browser
'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpack.js',
'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpackBrowser.js',
'react-server-dom-webpack/src/client/react-flight-dom-client.browser',
'react-server-dom-webpack/src/server/react-flight-dom-server.browser',
'react-server-dom-webpack/src/server/ReactFlightDOMServerBrowser.js', // react-server-dom-webpack/src/server/react-flight-dom-server.browser
'react-devtools',
@ -62,7 +63,7 @@ module.exports = [
'react-dom/src/server/react-dom-server.node.js',
'react-dom/test-utils',
'react-dom/unstable_server-external-runtime',
'react-server-dom-webpack/client.node.unbundled',
'react-server-dom-webpack/src/client/react-flight-dom-client.node.unbundled',
'react-server-dom-webpack/src/server/react-flight-dom-server.node.unbundled',
],
paths: [
@ -90,6 +91,7 @@ module.exports = [
'react-server-dom-webpack/static.node.unbundled',
'react-server-dom-webpack/src/client/ReactFlightDOMClientNode.js', // react-server-dom-webpack/client.node
'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerNode.js',
'react-server-dom-webpack/src/client/react-flight-dom-client.node.unbundled',
'react-server-dom-webpack/src/server/react-flight-dom-server.node.unbundled',
'react-server-dom-webpack/src/server/ReactFlightDOMServerNode.js', // react-server-dom-webpack/src/server/react-flight-dom-server.node
'react-devtools',
@ -104,7 +106,11 @@ module.exports = [
},
{
shortName: 'dom-node-webstreams',
entryPoints: ['react-dom/src/server/react-dom-server.node-webstreams.js'],
entryPoints: [
'react-dom/src/server/react-dom-server.node-webstreams.js',
'react-server-dom-webpack/src/client/react-flight-dom-client.node-webstreams.unbundled',
'react-server-dom-webpack/src/server/react-flight-dom-server.node-webstreams.unbundled',
],
paths: [
'react-dom',
'react-dom/src/ReactDOMReactServer.js',
@ -130,7 +136,8 @@ module.exports = [
'react-server-dom-webpack/static.node.unbundled',
'react-server-dom-webpack/src/client/ReactFlightDOMClientEdge.js', // react-server-dom-webpack/client.node
'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerNode.js',
'react-server-dom-webpack/src/server/react-flight-dom-server.node.unbundled',
'react-server-dom-webpack/src/client/react-flight-dom-client.node-webstreams.unbundled',
'react-server-dom-webpack/src/server/react-flight-dom-server.node-webstreams.unbundled',
'react-server-dom-webpack/src/server/ReactFlightDOMServerEdge.js', // react-server-dom-webpack/src/server/react-flight-dom-server.node
'shared/ReactDOMSharedInternals',
'react-server/src/ReactFlightServerConfigDebugNode.js',
@ -141,7 +148,7 @@ module.exports = [
{
shortName: 'dom-node-webpack',
entryPoints: [
'react-server-dom-webpack/client.node',
'react-server-dom-webpack/src/client/react-flight-dom-client.node',
'react-server-dom-webpack/src/server/react-flight-dom-server.node',
],
paths: [
@ -165,8 +172,10 @@ module.exports = [
'react-server-dom-webpack/server.node',
'react-server-dom-webpack/static',
'react-server-dom-webpack/static.node',
'react-server-dom-webpack/src/client/ReactFlightDOMClientNode.js', // react-server-dom-turbopack/client.node
'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpack.js',
'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpackServer.js',
'react-server-dom-webpack/src/client/react-flight-dom-client.node',
'react-server-dom-webpack/src/server/react-flight-dom-server.node',
'react-server-dom-webpack/src/server/ReactFlightDOMServerNode.js', // react-server-dom-webpack/src/server/react-flight-dom-server.node
'react-server-dom-webpack/node-register',
@ -390,7 +399,7 @@ module.exports = [
entryPoints: [
'react-dom/src/server/react-dom-server.edge.js',
'react-dom/static.edge',
'react-server-dom-webpack/client.edge',
'react-server-dom-webpack/src/client/react-flight-dom-client.edge',
'react-server-dom-webpack/src/server/react-flight-dom-server.edge',
],
paths: [
@ -415,6 +424,7 @@ module.exports = [
'react-server-dom-webpack/src/client/ReactFlightDOMClientEdge.js', // react-server-dom-webpack/client.edge
'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpack.js',
'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpackServer.js',
'react-server-dom-webpack/src/client/react-flight-dom-client.edge',
'react-server-dom-webpack/src/server/react-flight-dom-server.edge',
'react-server-dom-webpack/src/server/ReactFlightDOMServerEdge.js', // react-server-dom-webpack/src/server/react-flight-dom-server.edge
'react-devtools',