Skip to content

Commit 8436bcc

Browse files
authored
[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
1 parent 2b036d3 commit 8436bcc

16 files changed

+17
-191
lines changed

packages/react-dom/npm/server.browser.js

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ if (process.env.NODE_ENV === 'production') {
1212
exports.version = l.version;
1313
exports.renderToString = l.renderToString;
1414
exports.renderToStaticMarkup = l.renderToStaticMarkup;
15-
exports.renderToNodeStream = l.renderToNodeStream;
1615
exports.renderToStaticNodeStream = l.renderToStaticNodeStream;
1716
exports.renderToReadableStream = s.renderToReadableStream;
1817
if (s.resume) {

packages/react-dom/npm/server.bun.js

-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ exports.renderToReadableStream = b.renderToReadableStream;
1515
if (b.resume) {
1616
exports.resume = b.resume;
1717
}
18-
exports.renderToNodeStream = b.renderToNodeStream;
1918
exports.renderToStaticNodeStream = b.renderToStaticNodeStream;
2019
exports.renderToString = l.renderToString;
2120
exports.renderToStaticMarkup = l.renderToStaticMarkup;

packages/react-dom/npm/server.edge.js

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ if (process.env.NODE_ENV === 'production') {
1212

1313
exports.version = b.version;
1414
exports.renderToReadableStream = b.renderToReadableStream;
15-
exports.renderToNodeStream = b.renderToNodeStream;
1615
exports.renderToStaticNodeStream = b.renderToStaticNodeStream;
1716
exports.renderToString = l.renderToString;
1817
exports.renderToStaticMarkup = l.renderToStaticMarkup;

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

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ if (process.env.NODE_ENV === 'production') {
1212
exports.version = l.version;
1313
exports.renderToString = l.renderToString;
1414
exports.renderToStaticMarkup = l.renderToStaticMarkup;
15-
exports.renderToNodeStream = l.renderToNodeStream;
1615
exports.renderToStaticNodeStream = l.renderToStaticNodeStream;
1716
exports.renderToPipeableStream = s.renderToPipeableStream;
1817
if (s.resumeToPipeableStream) {

packages/react-dom/server.browser.js

-6
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,6 @@ export function renderToStaticMarkup() {
2323
arguments,
2424
);
2525
}
26-
export function renderToNodeStream() {
27-
return require('./src/server/ReactDOMLegacyServerBrowser').renderToNodeStream.apply(
28-
this,
29-
arguments,
30-
);
31-
}
3226
export function renderToStaticNodeStream() {
3327
return require('./src/server/ReactDOMLegacyServerBrowser').renderToStaticNodeStream.apply(
3428
this,

packages/react-dom/server.bun.js

-7
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,6 @@ export function renderToReadableStream() {
1818
);
1919
}
2020

21-
export function renderToNodeStream() {
22-
return require('./src/server/react-dom-server.bun').renderToNodeStream.apply(
23-
this,
24-
arguments,
25-
);
26-
}
27-
2821
export function renderToStaticNodeStream() {
2922
return require('./src/server/react-dom-server.bun').renderToStaticNodeStream.apply(
3023
this,

packages/react-dom/server.edge.js

-7
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,6 @@ export function renderToReadableStream() {
1818
);
1919
}
2020

21-
export function renderToNodeStream() {
22-
return require('./src/server/react-dom-server.edge').renderToNodeStream.apply(
23-
this,
24-
arguments,
25-
);
26-
}
27-
2821
export function renderToStaticNodeStream() {
2922
return require('./src/server/react-dom-server.edge').renderToStaticNodeStream.apply(
3023
this,

packages/react-dom/server.node.js

-6
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,6 @@ export function renderToStaticMarkup() {
2323
arguments,
2424
);
2525
}
26-
export function renderToNodeStream() {
27-
return require('./src/server/ReactDOMLegacyServerNode').renderToNodeStream.apply(
28-
this,
29-
arguments,
30-
);
31-
}
3226
export function renderToStaticNodeStream() {
3327
return require('./src/server/ReactDOMLegacyServerNode').renderToStaticNodeStream.apply(
3428
this,

packages/react-dom/src/__tests__/ReactDOMServerIntegrationNewContext-test.js

+12-34
Original file line numberDiff line numberDiff line change
@@ -338,24 +338,12 @@ describe('ReactDOMServerIntegration', () => {
338338
</LoggedInUser.Provider>
339339
);
340340

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');
359347

360348
// Testing by filling the buffer using internal _read() with a small
361349
// number of bytes to avoid a test case which needs to align to a
@@ -390,14 +378,9 @@ describe('ReactDOMServerIntegration', () => {
390378
const streamCount = 34;
391379

392380
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');
401384
}
402385

403386
// Testing by filling the buffer using internal _read() with a small
@@ -414,14 +397,9 @@ describe('ReactDOMServerIntegration', () => {
414397

415398
// Recreate those same streams.
416399
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');
425403
}
426404

427405
// Read a bit from all streams again.

packages/react-dom/src/__tests__/ReactServerRendering-test.js

-68
Original file line numberDiff line numberDiff line change
@@ -578,74 +578,6 @@ describe('ReactDOMServer', () => {
578578
});
579579
});
580580

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-
649581
describe('renderToStaticNodeStream', () => {
650582
it('should generate simple markup', () => {
651583
const SuccessfulElement = React.createElement(() => <img />);

packages/react-dom/src/__tests__/ReactServerRenderingBrowser-test.js

-13
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,4 @@ describe('ReactServerRenderingBrowser', () => {
4545
ReactDOMServer.renderToStaticMarkup(<Greeting />),
4646
);
4747
});
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-
});
6148
});

packages/react-dom/src/server/ReactDOMFizzServerBun.js

-8
Original file line numberDiff line numberDiff line change
@@ -146,13 +146,6 @@ function renderToReadableStream(
146146
});
147147
}
148148

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-
156149
function renderToStaticNodeStream() {
157150
throw new Error(
158151
'ReactDOMServer.renderToStaticNodeStream(): The Node Stream API is not available ' +
@@ -162,7 +155,6 @@ function renderToStaticNodeStream() {
162155

163156
export {
164157
renderToReadableStream,
165-
renderToNodeStream,
166158
renderToStaticNodeStream,
167159
ReactVersion as version,
168160
};

packages/react-dom/src/server/ReactDOMLegacyServerBrowser.js

-8
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,6 @@ function renderToStaticMarkup(
3939
);
4040
}
4141

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-
4942
function renderToStaticNodeStream() {
5043
throw new Error(
5144
'ReactDOMServer.renderToStaticNodeStream(): The streaming API is not available ' +
@@ -56,7 +49,6 @@ function renderToStaticNodeStream() {
5649
export {
5750
renderToString,
5851
renderToStaticMarkup,
59-
renderToNodeStream,
6052
renderToStaticNodeStream,
6153
version,
6254
};

packages/react-dom/src/server/ReactDOMLegacyServerNode.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@
1010
import type {ReactNodeList} from 'shared/ReactTypes';
1111

1212
import {version, renderToStringImpl} from './ReactDOMLegacyServerImpl';
13-
import {
14-
renderToNodeStream,
15-
renderToStaticNodeStream,
16-
} from './ReactDOMLegacyServerNodeStream';
13+
import {renderToStaticNodeStream} from './ReactDOMLegacyServerNodeStream';
1714

1815
type ServerOptions = {
1916
identifierPrefix?: string,
@@ -46,7 +43,6 @@ function renderToStaticMarkup(
4643
export {
4744
renderToString,
4845
renderToStaticMarkup,
49-
renderToNodeStream,
5046
renderToStaticNodeStream,
5147
version,
5248
};

packages/react-dom/src/server/ReactDOMLegacyServerNodeStream.js

+4-24
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,9 @@ function onError() {
5959
// Non-fatal errors are ignored.
6060
}
6161

62-
function renderToNodeStreamImpl(
62+
function renderToStaticNodeStream(
6363
children: ReactNodeList,
64-
options: void | ServerOptions,
65-
generateStaticMarkup: boolean,
64+
options?: ServerOptions,
6665
): Readable {
6766
function onAllReady() {
6867
// We wait until everything has loaded before starting to write.
@@ -78,7 +77,7 @@ function renderToNodeStreamImpl(
7877
const request = createRequest(
7978
children,
8079
resumableState,
81-
createRenderState(resumableState, generateStaticMarkup),
80+
createRenderState(resumableState, true),
8281
createRootFormatContext(),
8382
Infinity,
8483
onError,
@@ -92,23 +91,4 @@ function renderToNodeStreamImpl(
9291
return destination;
9392
}
9493

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
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
export {
1111
renderToReadableStream,
12-
renderToNodeStream,
1312
renderToStaticNodeStream,
1413
version,
1514
} from './ReactDOMFizzServerBun.js';

0 commit comments

Comments
 (0)