Skip to content

Commit a5110b2

Browse files
authored
[Flight] Add a Node.js Web Streams bundle for unbundled client/server for Webpack (facebook#33442)
Like facebook#33441 but for Flight. This is just one of the many combinations needed. I'm just starting with one.
1 parent b4477d3 commit a5110b2

11 files changed

+167
-13
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/**
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*
7+
* @flow
8+
*/
9+
10+
export {default as rendererVersion} from 'shared/ReactVersion';
11+
export const rendererPackageName = 'react-server-dom-webpack';
12+
13+
export * from 'react-client/src/ReactFlightClientStreamConfigWeb';
14+
export * from 'react-client/src/ReactClientConsoleConfigServer';
15+
export * from 'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerNode';
16+
export * from 'react-server-dom-webpack/src/client/ReactFlightClientConfigTargetWebpackServer';
17+
export * from 'react-dom-bindings/src/shared/ReactFlightClientConfigDOM';
18+
export const usedWithSSR = true;
Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,28 @@
11
'use strict';
22

3+
var n, w;
34
if (process.env.NODE_ENV === 'production') {
4-
module.exports = require('./cjs/react-server-dom-webpack-client.node.unbundled.production.js');
5+
n = require('./cjs/react-server-dom-webpack-client.node.unbundled.production.js');
6+
w = require('./cjs/react-server-dom-webpack-client.node-webstreams.unbundled.production.js');
57
} else {
6-
module.exports = require('./cjs/react-server-dom-webpack-client.node.unbundled.development.js');
8+
n = require('./cjs/react-server-dom-webpack-client.node.unbundled.development.js');
9+
w = require('./cjs/react-server-dom-webpack-client.node-webstreams.unbundled.development.js');
710
}
11+
12+
exports.registerServerReference = function (r, i, e) {
13+
return w.registerServerReference(n.registerServerReference(r, i, e), i, e);
14+
};
15+
exports.createServerReference = function (i, c, e, d, f) {
16+
return w.registerServerReference(
17+
n.createServerReference(i, c, e, d, f),
18+
i,
19+
e
20+
);
21+
};
22+
23+
exports.createFromNodeStream = n.createFromNodeStream;
24+
exports.createFromFetch = w.createFromFetch;
25+
exports.createFromReadableStream = w.createFromReadableStream;
26+
27+
exports.createTemporaryReferenceSet = w.createTemporaryReferenceSet;
28+
exports.encodeReply = w.encodeReply;

packages/react-server-dom-webpack/npm/server.node.unbundled.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
'use strict';
22

3-
var s;
3+
var s, w;
44
if (process.env.NODE_ENV === 'production') {
55
s = require('./cjs/react-server-dom-webpack-server.node.unbundled.production.js');
6+
w = require('./cjs/react-server-dom-webpack-server.node-webstreams.unbundled.production.js');
67
} else {
78
s = require('./cjs/react-server-dom-webpack-server.node.unbundled.development.js');
9+
w = require('./cjs/react-server-dom-webpack-server.node-webstreams.unbundled.development.js');
810
}
911

1012
exports.renderToPipeableStream = s.renderToPipeableStream;
@@ -16,3 +18,6 @@ exports.registerServerReference = s.registerServerReference;
1618
exports.registerClientReference = s.registerClientReference;
1719
exports.createClientModuleProxy = s.createClientModuleProxy;
1820
exports.createTemporaryReferenceSet = s.createTemporaryReferenceSet;
21+
22+
exports.renderToReadableStream = w.renderToReadableStream;
23+
exports.decodeReplyFromAsyncIterable = w.decodeReplyFromAsyncIterable;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/**
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*
7+
* @flow
8+
*/
9+
10+
export * from './ReactFlightDOMClientBrowser';
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/**
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*
7+
* @flow
8+
*/
9+
10+
export * from './ReactFlightDOMClientEdge';
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/**
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*
7+
* @flow
8+
*/
9+
10+
export * from './ReactFlightDOMClientEdge';
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/**
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*
7+
* @flow
8+
*/
9+
10+
export * from './ReactFlightDOMClientNode';
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/**
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*
7+
* @flow
8+
*/
9+
10+
export * from './ReactFlightDOMClientNode';
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/**
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*
7+
* @flow
8+
*/
9+
10+
export {
11+
renderToReadableStream,
12+
prerender as unstable_prerender,
13+
decodeReply,
14+
decodeReplyFromAsyncIterable,
15+
decodeAction,
16+
decodeFormState,
17+
registerServerReference,
18+
registerClientReference,
19+
createClientModuleProxy,
20+
createTemporaryReferenceSet,
21+
} from './ReactFlightDOMServerEdge';

scripts/rollup/bundles.js

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,18 @@ const bundles = [
484484
wrapWithModuleBoundaries: false,
485485
externals: ['react', 'util', 'crypto', 'async_hooks', 'react-dom'],
486486
},
487+
{
488+
bundleTypes: [NODE_DEV, NODE_PROD],
489+
moduleType: RENDERER,
490+
entry:
491+
'react-server-dom-webpack/src/server/react-flight-dom-server.node-webstreams.unbundled',
492+
name: 'react-server-dom-webpack-server.node-webstreams.unbundled',
493+
condition: 'react-server',
494+
global: 'ReactServerDOMServer',
495+
minifyWithProdErrorCodes: false,
496+
wrapWithModuleBoundaries: false,
497+
externals: ['react', 'util', 'crypto', 'async_hooks', 'react-dom'],
498+
},
487499
{
488500
bundleTypes: [NODE_DEV, NODE_PROD],
489501
moduleType: RENDERER,
@@ -500,7 +512,9 @@ const bundles = [
500512
{
501513
bundleTypes: [NODE_DEV, NODE_PROD],
502514
moduleType: RENDERER,
503-
entry: 'react-server-dom-webpack/client.browser',
515+
entry:
516+
'react-server-dom-webpack/src/client/react-flight-dom-client.browser',
517+
name: 'react-server-dom-webpack-client.browser',
504518
global: 'ReactServerDOMClient',
505519
minifyWithProdErrorCodes: false,
506520
wrapWithModuleBoundaries: false,
@@ -509,7 +523,8 @@ const bundles = [
509523
{
510524
bundleTypes: [NODE_DEV, NODE_PROD],
511525
moduleType: RENDERER,
512-
entry: 'react-server-dom-webpack/client.node',
526+
entry: 'react-server-dom-webpack/src/client/react-flight-dom-client.node',
527+
name: 'react-server-dom-webpack-client.node',
513528
global: 'ReactServerDOMClient',
514529
minifyWithProdErrorCodes: false,
515530
wrapWithModuleBoundaries: false,
@@ -518,7 +533,20 @@ const bundles = [
518533
{
519534
bundleTypes: [NODE_DEV, NODE_PROD],
520535
moduleType: RENDERER,
521-
entry: 'react-server-dom-webpack/client.node.unbundled',
536+
entry:
537+
'react-server-dom-webpack/src/client/react-flight-dom-client.node.unbundled',
538+
name: 'react-server-dom-webpack-client.node.unbundled',
539+
global: 'ReactServerDOMClient',
540+
minifyWithProdErrorCodes: false,
541+
wrapWithModuleBoundaries: false,
542+
externals: ['react', 'react-dom', 'util', 'crypto'],
543+
},
544+
{
545+
bundleTypes: [NODE_DEV, NODE_PROD],
546+
moduleType: RENDERER,
547+
entry:
548+
'react-server-dom-webpack/src/client/react-flight-dom-client.node-webstreams.unbundled',
549+
name: 'react-server-dom-webpack-client.node-webstreams.unbundled',
522550
global: 'ReactServerDOMClient',
523551
minifyWithProdErrorCodes: false,
524552
wrapWithModuleBoundaries: false,
@@ -527,7 +555,8 @@ const bundles = [
527555
{
528556
bundleTypes: [NODE_DEV, NODE_PROD],
529557
moduleType: RENDERER,
530-
entry: 'react-server-dom-webpack/client.edge',
558+
entry: 'react-server-dom-webpack/src/client/react-flight-dom-client.edge',
559+
name: 'react-server-dom-webpack-client.edge',
531560
global: 'ReactServerDOMClient',
532561
minifyWithProdErrorCodes: false,
533562
wrapWithModuleBoundaries: false,

scripts/shared/inlinedHostConfigs.js

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ module.exports = [
1717
'react-dom/src/server/react-dom-server.browser.js',
1818
'react-dom/static.browser',
1919
'react-dom/unstable_server-external-runtime',
20-
'react-server-dom-webpack/client.browser',
20+
'react-server-dom-webpack/src/client/react-flight-dom-client.browser',
2121
'react-server-dom-webpack/src/server/react-flight-dom-server.browser',
2222
],
2323
paths: [
@@ -43,6 +43,7 @@ module.exports = [
4343
'react-server-dom-webpack/src/client/ReactFlightDOMClientBrowser.js', // react-server-dom-webpack/client.browser
4444
'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpack.js',
4545
'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpackBrowser.js',
46+
'react-server-dom-webpack/src/client/react-flight-dom-client.browser',
4647
'react-server-dom-webpack/src/server/react-flight-dom-server.browser',
4748
'react-server-dom-webpack/src/server/ReactFlightDOMServerBrowser.js', // react-server-dom-webpack/src/server/react-flight-dom-server.browser
4849
'react-devtools',
@@ -62,7 +63,7 @@ module.exports = [
6263
'react-dom/src/server/react-dom-server.node.js',
6364
'react-dom/test-utils',
6465
'react-dom/unstable_server-external-runtime',
65-
'react-server-dom-webpack/client.node.unbundled',
66+
'react-server-dom-webpack/src/client/react-flight-dom-client.node.unbundled',
6667
'react-server-dom-webpack/src/server/react-flight-dom-server.node.unbundled',
6768
],
6869
paths: [
@@ -90,6 +91,7 @@ module.exports = [
9091
'react-server-dom-webpack/static.node.unbundled',
9192
'react-server-dom-webpack/src/client/ReactFlightDOMClientNode.js', // react-server-dom-webpack/client.node
9293
'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerNode.js',
94+
'react-server-dom-webpack/src/client/react-flight-dom-client.node.unbundled',
9395
'react-server-dom-webpack/src/server/react-flight-dom-server.node.unbundled',
9496
'react-server-dom-webpack/src/server/ReactFlightDOMServerNode.js', // react-server-dom-webpack/src/server/react-flight-dom-server.node
9597
'react-devtools',
@@ -104,7 +106,11 @@ module.exports = [
104106
},
105107
{
106108
shortName: 'dom-node-webstreams',
107-
entryPoints: ['react-dom/src/server/react-dom-server.node-webstreams.js'],
109+
entryPoints: [
110+
'react-dom/src/server/react-dom-server.node-webstreams.js',
111+
'react-server-dom-webpack/src/client/react-flight-dom-client.node-webstreams.unbundled',
112+
'react-server-dom-webpack/src/server/react-flight-dom-server.node-webstreams.unbundled',
113+
],
108114
paths: [
109115
'react-dom',
110116
'react-dom/src/ReactDOMReactServer.js',
@@ -130,7 +136,8 @@ module.exports = [
130136
'react-server-dom-webpack/static.node.unbundled',
131137
'react-server-dom-webpack/src/client/ReactFlightDOMClientEdge.js', // react-server-dom-webpack/client.node
132138
'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerNode.js',
133-
'react-server-dom-webpack/src/server/react-flight-dom-server.node.unbundled',
139+
'react-server-dom-webpack/src/client/react-flight-dom-client.node-webstreams.unbundled',
140+
'react-server-dom-webpack/src/server/react-flight-dom-server.node-webstreams.unbundled',
134141
'react-server-dom-webpack/src/server/ReactFlightDOMServerEdge.js', // react-server-dom-webpack/src/server/react-flight-dom-server.node
135142
'shared/ReactDOMSharedInternals',
136143
'react-server/src/ReactFlightServerConfigDebugNode.js',
@@ -141,7 +148,7 @@ module.exports = [
141148
{
142149
shortName: 'dom-node-webpack',
143150
entryPoints: [
144-
'react-server-dom-webpack/client.node',
151+
'react-server-dom-webpack/src/client/react-flight-dom-client.node',
145152
'react-server-dom-webpack/src/server/react-flight-dom-server.node',
146153
],
147154
paths: [
@@ -165,8 +172,10 @@ module.exports = [
165172
'react-server-dom-webpack/server.node',
166173
'react-server-dom-webpack/static',
167174
'react-server-dom-webpack/static.node',
175+
'react-server-dom-webpack/src/client/ReactFlightDOMClientNode.js', // react-server-dom-turbopack/client.node
168176
'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpack.js',
169177
'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpackServer.js',
178+
'react-server-dom-webpack/src/client/react-flight-dom-client.node',
170179
'react-server-dom-webpack/src/server/react-flight-dom-server.node',
171180
'react-server-dom-webpack/src/server/ReactFlightDOMServerNode.js', // react-server-dom-webpack/src/server/react-flight-dom-server.node
172181
'react-server-dom-webpack/node-register',
@@ -390,7 +399,7 @@ module.exports = [
390399
entryPoints: [
391400
'react-dom/src/server/react-dom-server.edge.js',
392401
'react-dom/static.edge',
393-
'react-server-dom-webpack/client.edge',
402+
'react-server-dom-webpack/src/client/react-flight-dom-client.edge',
394403
'react-server-dom-webpack/src/server/react-flight-dom-server.edge',
395404
],
396405
paths: [
@@ -415,6 +424,7 @@ module.exports = [
415424
'react-server-dom-webpack/src/client/ReactFlightDOMClientEdge.js', // react-server-dom-webpack/client.edge
416425
'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpack.js',
417426
'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpackServer.js',
427+
'react-server-dom-webpack/src/client/react-flight-dom-client.edge',
418428
'react-server-dom-webpack/src/server/react-flight-dom-server.edge',
419429
'react-server-dom-webpack/src/server/ReactFlightDOMServerEdge.js', // react-server-dom-webpack/src/server/react-flight-dom-server.edge
420430
'react-devtools',

0 commit comments

Comments
 (0)