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,

0 commit comments

Comments
 (0)