diff --git a/packages/react-dom/npm/server.browser.js b/packages/react-dom/npm/server.browser.js
index 4627357ca746..318fe36fa203 100644
--- a/packages/react-dom/npm/server.browser.js
+++ b/packages/react-dom/npm/server.browser.js
@@ -12,7 +12,6 @@ if (process.env.NODE_ENV === 'production') {
exports.version = l.version;
exports.renderToString = l.renderToString;
exports.renderToStaticMarkup = l.renderToStaticMarkup;
-exports.renderToStaticNodeStream = l.renderToStaticNodeStream;
exports.renderToReadableStream = s.renderToReadableStream;
if (s.resume) {
exports.resume = s.resume;
diff --git a/packages/react-dom/npm/server.bun.js b/packages/react-dom/npm/server.bun.js
index cd45f7d7f1fa..74390e99c86a 100644
--- a/packages/react-dom/npm/server.bun.js
+++ b/packages/react-dom/npm/server.bun.js
@@ -15,6 +15,5 @@ exports.renderToReadableStream = b.renderToReadableStream;
if (b.resume) {
exports.resume = b.resume;
}
-exports.renderToStaticNodeStream = b.renderToStaticNodeStream;
exports.renderToString = l.renderToString;
exports.renderToStaticMarkup = l.renderToStaticMarkup;
diff --git a/packages/react-dom/npm/server.edge.js b/packages/react-dom/npm/server.edge.js
index c71b3ee80599..50192934179b 100644
--- a/packages/react-dom/npm/server.edge.js
+++ b/packages/react-dom/npm/server.edge.js
@@ -12,7 +12,6 @@ if (process.env.NODE_ENV === 'production') {
exports.version = b.version;
exports.renderToReadableStream = b.renderToReadableStream;
-exports.renderToStaticNodeStream = b.renderToStaticNodeStream;
exports.renderToString = l.renderToString;
exports.renderToStaticMarkup = l.renderToStaticMarkup;
if (b.resume) {
diff --git a/packages/react-dom/npm/server.node.js b/packages/react-dom/npm/server.node.js
index 9aed61fffb37..edee039b26b0 100644
--- a/packages/react-dom/npm/server.node.js
+++ b/packages/react-dom/npm/server.node.js
@@ -12,7 +12,6 @@ if (process.env.NODE_ENV === 'production') {
exports.version = l.version;
exports.renderToString = l.renderToString;
exports.renderToStaticMarkup = l.renderToStaticMarkup;
-exports.renderToStaticNodeStream = l.renderToStaticNodeStream;
exports.renderToPipeableStream = s.renderToPipeableStream;
if (s.resumeToPipeableStream) {
exports.resumeToPipeableStream = s.resumeToPipeableStream;
diff --git a/packages/react-dom/server.browser.js b/packages/react-dom/server.browser.js
index 490bc8150409..b27f4410dccf 100644
--- a/packages/react-dom/server.browser.js
+++ b/packages/react-dom/server.browser.js
@@ -23,12 +23,6 @@ export function renderToStaticMarkup() {
arguments,
);
}
-export function renderToStaticNodeStream() {
- return require('./src/server/ReactDOMLegacyServerBrowser').renderToStaticNodeStream.apply(
- this,
- arguments,
- );
-}
export function renderToReadableStream() {
return require('./src/server/react-dom-server.browser').renderToReadableStream.apply(
diff --git a/packages/react-dom/server.bun.js b/packages/react-dom/server.bun.js
index 8e868a862159..7d054e5534e2 100644
--- a/packages/react-dom/server.bun.js
+++ b/packages/react-dom/server.bun.js
@@ -18,13 +18,6 @@ export function renderToReadableStream() {
);
}
-export function renderToStaticNodeStream() {
- return require('./src/server/react-dom-server.bun').renderToStaticNodeStream.apply(
- this,
- arguments,
- );
-}
-
export function renderToString() {
return require('./src/server/ReactDOMLegacyServerBrowser').renderToString.apply(
this,
diff --git a/packages/react-dom/server.edge.js b/packages/react-dom/server.edge.js
index d5a0ce6eb46f..7282c4ed6c87 100644
--- a/packages/react-dom/server.edge.js
+++ b/packages/react-dom/server.edge.js
@@ -18,13 +18,6 @@ export function renderToReadableStream() {
);
}
-export function renderToStaticNodeStream() {
- return require('./src/server/react-dom-server.edge').renderToStaticNodeStream.apply(
- this,
- arguments,
- );
-}
-
export function renderToString() {
return require('./src/server/ReactDOMLegacyServerBrowser').renderToString.apply(
this,
diff --git a/packages/react-dom/server.node.js b/packages/react-dom/server.node.js
index acdaa234f3c5..5f9c78f6dbd1 100644
--- a/packages/react-dom/server.node.js
+++ b/packages/react-dom/server.node.js
@@ -23,12 +23,6 @@ export function renderToStaticMarkup() {
arguments,
);
}
-export function renderToStaticNodeStream() {
- return require('./src/server/ReactDOMLegacyServerNode').renderToStaticNodeStream.apply(
- this,
- arguments,
- );
-}
export function renderToPipeableStream() {
return require('./src/server/react-dom-server.node').renderToPipeableStream.apply(
diff --git a/packages/react-dom/src/__tests__/ReactDOMServerIntegrationNewContext-test.js b/packages/react-dom/src/__tests__/ReactDOMServerIntegrationNewContext-test.js
index 2e573164a2e1..24009f1eda47 100644
--- a/packages/react-dom/src/__tests__/ReactDOMServerIntegrationNewContext-test.js
+++ b/packages/react-dom/src/__tests__/ReactDOMServerIntegrationNewContext-test.js
@@ -324,97 +324,6 @@ describe('ReactDOMServerIntegration', () => {
expect(e.textContent).toBe('dark');
});
- it('does not pollute parallel node streams', () => {
- const LoggedInUser = React.createContext();
-
- const AppWithUser = user => (
-
-
-
-
- );
-
- const streamAmy = ReactDOMServer.renderToStaticNodeStream(
- AppWithUser('Amy'),
- ).setEncoding('utf8');
- const streamBob = ReactDOMServer.renderToStaticNodeStream(
- AppWithUser('Bob'),
- ).setEncoding('utf8');
-
- // Testing by filling the buffer using internal _read() with a small
- // number of bytes to avoid a test case which needs to align to a
- // highWaterMark boundary of 2^14 chars.
- streamAmy._read(20);
- streamBob._read(20);
- streamAmy._read(20);
- streamBob._read(20);
-
- expect(streamAmy.read()).toBe('');
- expect(streamBob.read()).toBe('');
- });
-
- it('does not pollute parallel node streams when many are used', () => {
- const CurrentIndex = React.createContext();
-
- const NthRender = index => (
-
-
-
-
- );
-
- const streams = [];
-
- // Test with more than 32 streams to test that growing the thread count
- // works properly.
- const streamCount = 34;
-
- for (let i = 0; i < streamCount; i++) {
- streams[i] = ReactDOMServer.renderToStaticNodeStream(
- NthRender(i % 2 === 0 ? 'Expected to be recreated' : i),
- ).setEncoding('utf8');
- }
-
- // Testing by filling the buffer using internal _read() with a small
- // number of bytes to avoid a test case which needs to align to a
- // highWaterMark boundary of 2^14 chars.
- for (let i = 0; i < streamCount; i++) {
- streams[i]._read(20);
- }
-
- // Early destroy every other stream
- for (let i = 0; i < streamCount; i += 2) {
- streams[i].destroy();
- }
-
- // Recreate those same streams.
- for (let i = 0; i < streamCount; i += 2) {
- streams[i] = ReactDOMServer.renderToStaticNodeStream(
- NthRender(i),
- ).setEncoding('utf8');
- }
-
- // Read a bit from all streams again.
- for (let i = 0; i < streamCount; i++) {
- streams[i]._read(20);
- }
-
- // Assert that all stream rendered the expected output.
- for (let i = 0; i < streamCount; i++) {
- expect(streams[i].read()).toBe(
- '',
- );
- }
- });
-
it('does not pollute sync renders after an error', () => {
const LoggedInUser = React.createContext('default');
const Crash = () => {
diff --git a/packages/react-dom/src/__tests__/ReactServerRendering-test.js b/packages/react-dom/src/__tests__/ReactServerRendering-test.js
index ab200d10517f..b964656c5c7c 100644
--- a/packages/react-dom/src/__tests__/ReactServerRendering-test.js
+++ b/packages/react-dom/src/__tests__/ReactServerRendering-test.js
@@ -577,73 +577,6 @@ describe('ReactDOMServer', () => {
});
});
- describe('renderToStaticNodeStream', () => {
- it('should generate simple markup', () => {
- const SuccessfulElement = React.createElement(() =>
);
- expect(() => {
- const response =
- ReactDOMServer.renderToStaticNodeStream(SuccessfulElement);
- expect(response.read().toString()).toMatch(new RegExp('
'));
- }).toErrorDev(
- 'ReactDOMServer.renderToStaticNodeStream() is deprecated and will be removed in an upcomingrelease of React',
- {withoutStack: true},
- );
- });
-
- it('should handle errors correctly', () => {
- const FailingElement = React.createElement(() => {
- throw new Error('An Error');
- });
-
- let response;
- expect(() => {
- response = ReactDOMServer.renderToStaticNodeStream(FailingElement);
- }).toErrorDev(
- 'ReactDOMServer.renderToStaticNodeStream() is deprecated and will be removed in an upcomingrelease of React',
- {withoutStack: true},
- );
- return new Promise(resolve => {
- response.once('error', () => {
- resolve();
- });
- expect(response.read()).toBeNull();
- });
- });
-
- it('should omit text and suspense placeholders', async () => {
- let resolve = null;
- const promise = new Promise(res => {
- resolve = () => {
- resolved = true;
- res();
- };
- });
- let resolved = false;
- function Suspender() {
- if (resolved) {
- return 'resolved';
- }
- throw promise;
- }
-
- let response;
- expect(() => {
- response = ReactDOMServer.renderToStaticNodeStream(
-
-
-
-
-
,
- );
- }).toErrorDev(
- 'ReactDOMServer.renderToStaticNodeStream() is deprecated and will be removed in an upcomingrelease of React',
- {withoutStack: true},
- );
- await resolve();
- expect(response.read().toString()).toEqual('resolved
');
- });
- });
-
it('warns with a no-op when an async setState is triggered', () => {
class Foo extends React.Component {
UNSAFE_componentWillMount() {
diff --git a/packages/react-dom/src/server/ReactDOMFizzServerBun.js b/packages/react-dom/src/server/ReactDOMFizzServerBun.js
index bc0206cdc805..4cceb66e7cdf 100644
--- a/packages/react-dom/src/server/ReactDOMFizzServerBun.js
+++ b/packages/react-dom/src/server/ReactDOMFizzServerBun.js
@@ -146,15 +146,4 @@ function renderToReadableStream(
});
}
-function renderToStaticNodeStream() {
- throw new Error(
- 'ReactDOMServer.renderToStaticNodeStream(): The Node Stream API is not available ' +
- 'in Bun. Use ReactDOMServer.renderToReadableStream() instead.',
- );
-}
-
-export {
- renderToReadableStream,
- renderToStaticNodeStream,
- ReactVersion as version,
-};
+export {renderToReadableStream, ReactVersion as version};
diff --git a/packages/react-dom/src/server/ReactDOMLegacyServerBrowser.js b/packages/react-dom/src/server/ReactDOMLegacyServerBrowser.js
index 01fdbd8d50b6..43bf22bddbdf 100644
--- a/packages/react-dom/src/server/ReactDOMLegacyServerBrowser.js
+++ b/packages/react-dom/src/server/ReactDOMLegacyServerBrowser.js
@@ -39,16 +39,4 @@ function renderToStaticMarkup(
);
}
-function renderToStaticNodeStream() {
- throw new Error(
- 'ReactDOMServer.renderToStaticNodeStream(): The streaming API is not available ' +
- 'in the browser. Use ReactDOMServer.renderToStaticMarkup() instead.',
- );
-}
-
-export {
- renderToString,
- renderToStaticMarkup,
- renderToStaticNodeStream,
- version,
-};
+export {renderToString, renderToStaticMarkup, version};
diff --git a/packages/react-dom/src/server/ReactDOMLegacyServerNode.js b/packages/react-dom/src/server/ReactDOMLegacyServerNode.js
index 07765e2b7433..681a07b41100 100644
--- a/packages/react-dom/src/server/ReactDOMLegacyServerNode.js
+++ b/packages/react-dom/src/server/ReactDOMLegacyServerNode.js
@@ -10,7 +10,6 @@
import type {ReactNodeList} from 'shared/ReactTypes';
import {version, renderToStringImpl} from './ReactDOMLegacyServerImpl';
-import {renderToStaticNodeStream} from './ReactDOMLegacyServerNodeStream';
type ServerOptions = {
identifierPrefix?: string,
@@ -40,9 +39,4 @@ function renderToStaticMarkup(
);
}
-export {
- renderToString,
- renderToStaticMarkup,
- renderToStaticNodeStream,
- version,
-};
+export {renderToString, renderToStaticMarkup, version};
diff --git a/packages/react-dom/src/server/ReactDOMLegacyServerNodeStream.js b/packages/react-dom/src/server/ReactDOMLegacyServerNodeStream.js
deleted file mode 100644
index 374a4a506883..000000000000
--- a/packages/react-dom/src/server/ReactDOMLegacyServerNodeStream.js
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @flow
- */
-
-import type {ReactNodeList} from 'shared/ReactTypes';
-
-import type {Request} from 'react-server/src/ReactFizzServer';
-
-import {
- createRequest,
- startWork,
- startFlowing,
- abort,
-} from 'react-server/src/ReactFizzServer';
-
-import {
- createResumableState,
- createRenderState,
- createRootFormatContext,
-} from 'react-dom-bindings/src/server/ReactFizzConfigDOMLegacy';
-
-import {Readable} from 'stream';
-
-type ServerOptions = {
- identifierPrefix?: string,
-};
-
-class ReactMarkupReadableStream extends Readable {
- request: Request;
- startedFlowing: boolean;
- constructor() {
- // Calls the stream.Readable(options) constructor. Consider exposing built-in
- // features like highWaterMark in the future.
- super({});
- this.request = (null: any);
- this.startedFlowing = false;
- }
-
- // $FlowFixMe[missing-local-annot]
- _destroy(err, callback) {
- abort(this.request);
- callback(err);
- }
-
- // $FlowFixMe[missing-local-annot]
- _read(size) {
- if (this.startedFlowing) {
- startFlowing(this.request, this);
- }
- }
-}
-
-function onError() {
- // Non-fatal errors are ignored.
-}
-
-let didWarnAboutDeprecatedRenderToStaticNodeStream = false;
-
-function renderToStaticNodeStream(
- children: ReactNodeList,
- options?: ServerOptions,
-): Readable {
- if (__DEV__) {
- if (!didWarnAboutDeprecatedRenderToStaticNodeStream) {
- didWarnAboutDeprecatedRenderToStaticNodeStream = true;
- console.error(
- 'ReactDOMServer.renderToStaticNodeStream() is deprecated and will be removed in an upcoming' +
- 'release of React. Use ReactDOMServer.renderToPipeableStream() and wait to `pipe` until the `onAllReady`' +
- ' callback has been called to produce a document suitable for static use cases.',
- );
- }
- }
-
- function onAllReady() {
- // We wait until everything has loaded before starting to write.
- // That way we only end up with fully resolved HTML even if we suspend.
- destination.startedFlowing = true;
- startFlowing(request, destination);
- }
- const destination = new ReactMarkupReadableStream();
- const resumableState = createResumableState(
- options ? options.identifierPrefix : undefined,
- undefined,
- );
- const request = createRequest(
- children,
- resumableState,
- createRenderState(resumableState, true),
- createRootFormatContext(),
- Infinity,
- onError,
- onAllReady,
- undefined,
- undefined,
- undefined,
- );
- destination.request = request;
- startWork(request);
- return destination;
-}
-
-export {renderToStaticNodeStream};
diff --git a/packages/react-dom/src/server/react-dom-server.bun.stable.js b/packages/react-dom/src/server/react-dom-server.bun.stable.js
index 74f933dcfeb9..4d17773002f7 100644
--- a/packages/react-dom/src/server/react-dom-server.bun.stable.js
+++ b/packages/react-dom/src/server/react-dom-server.bun.stable.js
@@ -7,8 +7,4 @@
* @flow
*/
-export {
- renderToReadableStream,
- renderToStaticNodeStream,
- version,
-} from './ReactDOMFizzServerBun.js';
+export {renderToReadableStream, version} from './ReactDOMFizzServerBun.js';