[Fizz][Legacy] Remove renderToNodeStream (#28607)
Stacked on #28606 renderToNodeStream has been deprecated since React 18 with a warning indicating users should upgrade to renderToPipeableStream. This change removes renderToNodeStream
Josh Story committed
Mar 27, 2024 at 12:02 UTC
8436bcca6287077a5409b3c9180f8af0361b16a5
16 files changed
+17
-191
packages/react-dom/npm/server.browser.js
-1
@@ -12,7 +12,6 @@ if (process.env.NODE_ENV === 'production') {
12
exports.version = l.version;
13
exports.renderToString = l.renderToString;
14
exports.renderToStaticMarkup = l.renderToStaticMarkup;
15
-exports.renderToNodeStream = l.renderToNodeStream;
15
exports.renderToStaticNodeStream = l.renderToStaticNodeStream;
16
exports.renderToReadableStream = s.renderToReadableStream;
17
if (s.resume) {
packages/react-dom/npm/server.bun.js
-1
@@ -15,7 +15,6 @@ exports.renderToReadableStream = b.renderToReadableStream;
15
if (b.resume) {
16
exports.resume = b.resume;
17
}
18
-exports.renderToNodeStream = b.renderToNodeStream;
18
exports.renderToStaticNodeStream = b.renderToStaticNodeStream;
19
exports.renderToString = l.renderToString;
20
exports.renderToStaticMarkup = l.renderToStaticMarkup;
packages/react-dom/npm/server.edge.js
-1
@@ -12,7 +12,6 @@ if (process.env.NODE_ENV === 'production') {
12
13
exports.version = b.version;
14
exports.renderToReadableStream = b.renderToReadableStream;
15
-exports.renderToNodeStream = b.renderToNodeStream;
15
exports.renderToStaticNodeStream = b.renderToStaticNodeStream;
16
exports.renderToString = l.renderToString;
17
exports.renderToStaticMarkup = l.renderToStaticMarkup;
packages/react-dom/npm/server.node.js
-1
@@ -12,7 +12,6 @@ if (process.env.NODE_ENV === 'production') {
12
exports.version = l.version;
13
exports.renderToString = l.renderToString;
14
exports.renderToStaticMarkup = l.renderToStaticMarkup;
15
-exports.renderToNodeStream = l.renderToNodeStream;
15
exports.renderToStaticNodeStream = l.renderToStaticNodeStream;
16
exports.renderToPipeableStream = s.renderToPipeableStream;
17
if (s.resumeToPipeableStream) {
packages/react-dom/server.browser.js
-6
@@ -23,12 +23,6 @@ export function renderToStaticMarkup() {
23
arguments,
24
);
25
}
26
-export function renderToNodeStream() {
27
- return require('./src/server/ReactDOMLegacyServerBrowser').renderToNodeStream.apply(
28
- this,
29
- arguments,
30
- );
31
-}
26
export function renderToStaticNodeStream() {
27
return require('./src/server/ReactDOMLegacyServerBrowser').renderToStaticNodeStream.apply(
28
this,
packages/react-dom/server.bun.js
-7
@@ -18,13 +18,6 @@ export function renderToReadableStream() {
18
);
19
}
20
21
-export function renderToNodeStream() {
22
- return require('./src/server/react-dom-server.bun').renderToNodeStream.apply(
23
- this,
24
- arguments,
25
- );
26
-}
27
-
21
export function renderToStaticNodeStream() {
22
return require('./src/server/react-dom-server.bun').renderToStaticNodeStream.apply(
23
this,
packages/react-dom/server.edge.js
-7
@@ -18,13 +18,6 @@ export function renderToReadableStream() {
18
);
19
}
20
21
-export function renderToNodeStream() {
22
- return require('./src/server/react-dom-server.edge').renderToNodeStream.apply(
23
- this,
24
- arguments,
25
- );
26
-}
27
-
21
export function renderToStaticNodeStream() {
22
return require('./src/server/react-dom-server.edge').renderToStaticNodeStream.apply(
23
this,
packages/react-dom/server.node.js
-6
@@ -23,12 +23,6 @@ export function renderToStaticMarkup() {
23
arguments,
24
);
25
}
26
-export function renderToNodeStream() {
27
- return require('./src/server/ReactDOMLegacyServerNode').renderToNodeStream.apply(
28
- this,
29
- arguments,
30
- );
31
-}
26
export function renderToStaticNodeStream() {
27
return require('./src/server/ReactDOMLegacyServerNode').renderToStaticNodeStream.apply(
28
this,
packages/react-dom/src/__tests__/ReactDOMServerIntegrationNewContext-test.js
+12
-34
@@ -338,24 +338,12 @@ describe('ReactDOMServerIntegration', () => {
338
</LoggedInUser.Provider>
339
);
340
341
- let streamAmy;
342
- let streamBob;
343
- expect(() => {
344
- streamAmy = ReactDOMServer.renderToNodeStream(
345
- AppWithUser('Amy'),
346
- ).setEncoding('utf8');
347
- }).toErrorDev(
348
- 'renderToNodeStream is deprecated. Use renderToPipeableStream instead.',
349
- {withoutStack: true},
350
- );
351
- expect(() => {
352
- streamBob = ReactDOMServer.renderToNodeStream(
353
- AppWithUser('Bob'),
354
- ).setEncoding('utf8');
355
- }).toErrorDev(
356
- 'renderToNodeStream is deprecated. Use renderToPipeableStream instead.',
357
- {withoutStack: true},
358
- );
341
+ const streamAmy = ReactDOMServer.renderToStaticNodeStream(
342
+ AppWithUser('Amy'),
343
+ ).setEncoding('utf8');
344
+ const streamBob = ReactDOMServer.renderToStaticNodeStream(
345
+ AppWithUser('Bob'),
346
+ ).setEncoding('utf8');
347
348
// Testing by filling the buffer using internal _read() with a small
349
// number of bytes to avoid a test case which needs to align to a
@@ -390,14 +378,9 @@ describe('ReactDOMServerIntegration', () => {
378
const streamCount = 34;
379
380
for (let i = 0; i < streamCount; i++) {
393
- expect(() => {
394
- streams[i] = ReactDOMServer.renderToNodeStream(
395
- NthRender(i % 2 === 0 ? 'Expected to be recreated' : i),
396
- ).setEncoding('utf8');
397
- }).toErrorDev(
398
- 'renderToNodeStream is deprecated. Use renderToPipeableStream instead.',
399
- {withoutStack: true},
400
- );
381
+ streams[i] = ReactDOMServer.renderToStaticNodeStream(
382
+ NthRender(i % 2 === 0 ? 'Expected to be recreated' : i),
383
+ ).setEncoding('utf8');
384
}
385
386
// Testing by filling the buffer using internal _read() with a small
@@ -414,14 +397,9 @@ describe('ReactDOMServerIntegration', () => {
397
398
// Recreate those same streams.
399
for (let i = 0; i < streamCount; i += 2) {
417
- expect(() => {
418
- streams[i] = ReactDOMServer.renderToNodeStream(
419
- NthRender(i),
420
- ).setEncoding('utf8');
421
- }).toErrorDev(
422
- 'renderToNodeStream is deprecated. Use renderToPipeableStream instead.',
423
- {withoutStack: true},
424
- );
400
+ streams[i] = ReactDOMServer.renderToStaticNodeStream(
401
+ NthRender(i),
402
+ ).setEncoding('utf8');
403
}
404
405
// Read a bit from all streams again.
packages/react-dom/src/__tests__/ReactServerRendering-test.js
-68
@@ -578,74 +578,6 @@ describe('ReactDOMServer', () => {
578
});
579
});
580
581
- describe('renderToNodeStream', () => {
582
- it('should generate simple markup', () => {
583
- const SuccessfulElement = React.createElement(() => <img />);
584
- let response;
585
- expect(() => {
586
- response = ReactDOMServer.renderToNodeStream(SuccessfulElement);
587
- }).toErrorDev(
588
- 'renderToNodeStream is deprecated. Use renderToPipeableStream instead.',
589
- {withoutStack: true},
590
- );
591
- expect(response.read().toString()).toMatch(new RegExp('<img' + '/>'));
592
- });
593
-
594
- it('should handle errors correctly', () => {
595
- const FailingElement = React.createElement(() => {
596
- throw new Error('An Error');
597
- });
598
- let response;
599
- expect(() => {
600
- response = ReactDOMServer.renderToNodeStream(FailingElement);
601
- }).toErrorDev(
602
- 'renderToNodeStream is deprecated. Use renderToPipeableStream instead.',
603
- {withoutStack: true},
604
- );
605
- return new Promise(resolve => {
606
- response.once('error', () => {
607
- resolve();
608
- });
609
- expect(response.read()).toBeNull();
610
- });
611
- });
612
-
613
- it('should refer users to new apis when using suspense', async () => {
614
- let resolve = null;
615
- const promise = new Promise(res => {
616
- resolve = () => {
617
- resolved = true;
618
- res();
619
- };
620
- });
621
- let resolved = false;
622
- function Suspender() {
623
- if (resolved) {
624
- return 'resolved';
625
- }
626
- throw promise;
627
- }
628
-
629
- let response;
630
- expect(() => {
631
- response = ReactDOMServer.renderToNodeStream(
632
- <div>
633
- <React.Suspense fallback={'fallback'}>
634
- <Suspender />
635
- </React.Suspense>
636
- </div>,
637
- );
638
- }).toErrorDev(
639
- 'renderToNodeStream is deprecated. Use renderToPipeableStream instead.',
640
- {withoutStack: true},
641
- );
642
- await resolve();
643
- expect(response.read().toString()).toEqual(
644
- '<div><!--$-->resolved<!-- --><!--/$--></div>',
645
- );
646
- });
647
- });
648
-
581
describe('renderToStaticNodeStream', () => {
582
it('should generate simple markup', () => {
583
const SuccessfulElement = React.createElement(() => <img />);
packages/react-dom/src/__tests__/ReactServerRenderingBrowser-test.js
-13
@@ -45,17 +45,4 @@ describe('ReactServerRenderingBrowser', () => {
45
ReactDOMServer.renderToStaticMarkup(<Greeting />),
46
);
47
});
48
-
49
- it('throws meaningfully for server-only APIs', () => {
50
- expect(() => ReactDOMServerBrowser.renderToNodeStream(<div />)).toThrow(
51
- 'ReactDOMServer.renderToNodeStream(): The streaming API is not available ' +
52
- 'in the browser. Use ReactDOMServer.renderToString() instead.',
53
- );
54
- expect(() =>
55
- ReactDOMServerBrowser.renderToStaticNodeStream(<div />),
56
- ).toThrow(
57
- 'ReactDOMServer.renderToStaticNodeStream(): The streaming API is not available ' +
58
- 'in the browser. Use ReactDOMServer.renderToStaticMarkup() instead.',
59
- );
60
- });
48
});
packages/react-dom/src/server/ReactDOMFizzServerBun.js
-8
@@ -146,13 +146,6 @@ function renderToReadableStream(
146
});
147
}
148
149
-function renderToNodeStream() {
150
- throw new Error(
151
- 'ReactDOMServer.renderToNodeStream(): The Node Stream API is not available ' +
152
- 'in Bun. Use ReactDOMServer.renderToReadableStream() instead.',
153
- );
154
-}
155
-
149
function renderToStaticNodeStream() {
150
throw new Error(
151
'ReactDOMServer.renderToStaticNodeStream(): The Node Stream API is not available ' +
@@ -162,7 +155,6 @@ function renderToStaticNodeStream() {
155
156
export {
157
renderToReadableStream,
165
- renderToNodeStream,
158
renderToStaticNodeStream,
159
ReactVersion as version,
160
};
packages/react-dom/src/server/ReactDOMLegacyServerBrowser.js
-8
@@ -39,13 +39,6 @@ function renderToStaticMarkup(
39
);
40
}
41
42
-function renderToNodeStream() {
43
- throw new Error(
44
- 'ReactDOMServer.renderToNodeStream(): The streaming API is not available ' +
45
- 'in the browser. Use ReactDOMServer.renderToString() instead.',
46
- );
47
-}
48
-
42
function renderToStaticNodeStream() {
43
throw new Error(
44
'ReactDOMServer.renderToStaticNodeStream(): The streaming API is not available ' +
@@ -56,7 +49,6 @@ function renderToStaticNodeStream() {
49
export {
50
renderToString,
51
renderToStaticMarkup,
59
- renderToNodeStream,
52
renderToStaticNodeStream,
53
version,
54
};
packages/react-dom/src/server/ReactDOMLegacyServerNode.js
+1
-5
@@ -10,10 +10,7 @@
10
import type {ReactNodeList} from 'shared/ReactTypes';
11
12
import {version, renderToStringImpl} from './ReactDOMLegacyServerImpl';
13
-import {
14
- renderToNodeStream,
15
- renderToStaticNodeStream,
16
-} from './ReactDOMLegacyServerNodeStream';
13
+import {renderToStaticNodeStream} from './ReactDOMLegacyServerNodeStream';
14
15
type ServerOptions = {
16
identifierPrefix?: string,
@@ -46,7 +43,6 @@ function renderToStaticMarkup(
43
export {
44
renderToString,
45
renderToStaticMarkup,
49
- renderToNodeStream,
46
renderToStaticNodeStream,
47
version,
48
};
packages/react-dom/src/server/ReactDOMLegacyServerNodeStream.js
+4
-24
@@ -59,10 +59,9 @@ function onError() {
59
// Non-fatal errors are ignored.
60
}
61
62
-function renderToNodeStreamImpl(
62
+function renderToStaticNodeStream(
63
children: ReactNodeList,
64
- options: void | ServerOptions,
65
- generateStaticMarkup: boolean,
64
+ options?: ServerOptions,
65
): Readable {
66
function onAllReady() {
67
// We wait until everything has loaded before starting to write.
@@ -78,7 +77,7 @@ function renderToNodeStreamImpl(
77
const request = createRequest(
78
children,
79
resumableState,
81
- createRenderState(resumableState, generateStaticMarkup),
80
+ createRenderState(resumableState, true),
81
createRootFormatContext(),
82
Infinity,
83
onError,
@@ -92,23 +91,4 @@ function renderToNodeStreamImpl(
91
return destination;
92
}
93
95
-function renderToNodeStream(
96
- children: ReactNodeList,
97
- options?: ServerOptions,
98
-): Readable {
99
- if (__DEV__) {
100
- console.error(
101
- 'renderToNodeStream is deprecated. Use renderToPipeableStream instead.',
102
- );
103
- }
104
- return renderToNodeStreamImpl(children, options, false);
105
-}
106
-
107
-function renderToStaticNodeStream(
108
- children: ReactNodeList,
109
- options?: ServerOptions,
110
-): Readable {
111
- return renderToNodeStreamImpl(children, options, true);
112
-}
113
-
114
-export {renderToNodeStream, renderToStaticNodeStream};
94
+export {renderToStaticNodeStream};
packages/react-dom/src/server/react-dom-server.bun.stable.js
-1
@@ -9,7 +9,6 @@
9
10
export {
11
renderToReadableStream,
12
- renderToNodeStream,
12
renderToStaticNodeStream,
13
version,
14
} from './ReactDOMFizzServerBun.js';