@samitouri / QOS-React-2 / commits / 280ff6fed2

[Flight] Add Web Stream support to the Flight Client in Node (#33473)

This effectively lets us consume Web Streams in a Node build. In fact the Node entry point is now just adding Node stream APIs. For the client, this is simple because the configs are not actually stream type specific. The server is a little trickier.

Sebastian Markbåge committed Jun 6, 2025 at 17:14 UTC 280ff6fed2a84b6ad7588c72d3e66b20f0f3c91a
4 files changed +8 -37
packages/react-server-dom-parcel/src/client/ReactFlightDOMClientNode.js
+1 -16
@@ -19,9 +19,7 @@ import {
19 close,
20 } from 'react-client/src/ReactFlightClient';
21
22 -import {createServerReference as createServerReferenceImpl} from 'react-client/src/ReactFlightReplyClient';
23 -
24 -export {registerServerReference} from 'react-client/src/ReactFlightReplyClient';
22 +export * from './ReactFlightDOMClientEdge';
23
24 function findSourceMapURL(filename: string, environmentName: string) {
25 const devServer = parcelRequire.meta.devServer;
@@ -42,19 +40,6 @@ function noServerCall() {
40 );
41 }
42
45 -export function createServerReference<A: Iterable<any>, T>(
46 - id: string,
47 - exportName: string,
48 -): (...A) => Promise<T> {
49 - return createServerReferenceImpl(
50 - id + '#' + exportName,
51 - noServerCall,
52 - undefined,
53 - findSourceMapURL,
54 - exportName,
55 - );
56 -}
57 -
43 type EncodeFormActionCallback = <A>(
44 id: any,
45 args: Promise<A>,
packages/react-server-dom-turbopack/src/client/ReactFlightDOMClientNode.js
+1 -10
@@ -36,9 +36,7 @@ import {
36 close,
37 } from 'react-client/src/ReactFlightClient';
38
39 -import {createServerReference as createServerReferenceImpl} from 'react-client/src/ReactFlightReplyClient';
40 -
41 -export {registerServerReference} from 'react-client/src/ReactFlightReplyClient';
39 +export * from './ReactFlightDOMClientEdge';
40
41 function noServerCall() {
42 throw new Error(
@@ -48,13 +46,6 @@ function noServerCall() {
46 );
47 }
48
51 -export function createServerReference<A: Iterable<any>, T>(
52 - id: any,
53 - callServer: any,
54 -): (...A) => Promise<T> {
55 - return createServerReferenceImpl(id, noServerCall);
56 -}
57 -
49 type EncodeFormActionCallback = <A>(
50 id: any,
51 args: Promise<A>,
packages/react-server-dom-webpack/src/client/ReactFlightDOMClientNode.js
+1 -10
@@ -37,9 +37,7 @@ import {
37 close,
38 } from 'react-client/src/ReactFlightClient';
39
40 -import {createServerReference as createServerReferenceImpl} from 'react-client/src/ReactFlightReplyClient';
41 -
42 -export {registerServerReference} from 'react-client/src/ReactFlightReplyClient';
40 +export * from './ReactFlightDOMClientEdge';
41
42 function noServerCall() {
43 throw new Error(
@@ -49,13 +47,6 @@ function noServerCall() {
47 );
48 }
49
52 -export function createServerReference<A: Iterable<any>, T>(
53 - id: any,
54 - callServer: any,
55 -): (...A) => Promise<T> {
56 - return createServerReferenceImpl(id, noServerCall);
57 -}
58 -
50 type EncodeFormActionCallback = <A>(
51 id: any,
52 args: Promise<A>,
scripts/shared/inlinedHostConfigs.js
+5 -1
@@ -89,6 +89,7 @@ module.exports = [
89 'react-server-dom-webpack/server.node.unbundled',
90 'react-server-dom-webpack/static',
91 'react-server-dom-webpack/static.node.unbundled',
92 + 'react-server-dom-webpack/src/client/ReactFlightDOMClientEdge.js', // react-server-dom-webpack/client.node
93 'react-server-dom-webpack/src/client/ReactFlightDOMClientNode.js', // react-server-dom-webpack/client.node
94 'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerNode.js',
95 'react-server-dom-webpack/src/client/react-flight-dom-client.node.unbundled',
@@ -131,7 +132,8 @@ module.exports = [
132 'react-server-dom-webpack/server.node',
133 'react-server-dom-webpack/static',
134 'react-server-dom-webpack/static.node',
134 - 'react-server-dom-webpack/src/client/ReactFlightDOMClientNode.js', // react-server-dom-turbopack/client.node
135 + 'react-server-dom-webpack/src/client/ReactFlightDOMClientEdge.js', // react-server-dom-webpack/client.node
136 + 'react-server-dom-webpack/src/client/ReactFlightDOMClientNode.js', // react-server-dom-webpack/client.node
137 'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpack.js',
138 'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpackServer.js',
139 'react-server-dom-webpack/src/client/react-flight-dom-client.node',
@@ -176,6 +178,7 @@ module.exports = [
178 'react-server-dom-turbopack/server.node',
179 'react-server-dom-turbopack/static',
180 'react-server-dom-turbopack/static.node',
181 + 'react-server-dom-turbopack/src/client/ReactFlightDOMClientEdge.js', // react-server-dom-turbopack/client.node
182 'react-server-dom-turbopack/src/client/ReactFlightDOMClientNode.js', // react-server-dom-turbopack/client.node
183 'react-server-dom-turbopack/src/client/ReactFlightClientConfigBundlerTurbopack.js',
184 'react-server-dom-turbopack/src/client/ReactFlightClientConfigBundlerTurbopackServer.js',
@@ -221,6 +224,7 @@ module.exports = [
224 'react-server-dom-parcel/server.node',
225 'react-server-dom-parcel/static',
226 'react-server-dom-parcel/static.node',
227 + 'react-server-dom-parcel/src/client/ReactFlightDOMClientEdge.js', // react-server-dom-parcel/client.node
228 'react-server-dom-parcel/src/client/ReactFlightDOMClientNode.js', // react-server-dom-parcel/client.node
229 'react-server-dom-parcel/src/client/ReactFlightClientConfigBundlerParcel.js',
230 'react-server-dom-parcel/src/client/react-flight-dom-client.node',