Skip to content

Commit

Permalink
[Fizz][Legacy] Remove renderToNodeStream (facebook#28607)
Browse files Browse the repository at this point in the history
Stacked on facebook#28606 

renderToNodeStream has been deprecated since React 18 with a warning
indicating users should upgrade to renderToPipeableStream. This change
removes renderToNodeStream
  • Loading branch information
gnoff authored and AndyPengc12 committed Apr 15, 2024
1 parent e09fd42 commit 25d624d
Show file tree
Hide file tree
Showing 16 changed files with 17 additions and 191 deletions.
1 change: 0 additions & 1 deletion packages/react-dom/npm/server.browser.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ if (process.env.NODE_ENV === 'production') {
exports.version = l.version;
exports.renderToString = l.renderToString;
exports.renderToStaticMarkup = l.renderToStaticMarkup;
exports.renderToNodeStream = l.renderToNodeStream;
exports.renderToStaticNodeStream = l.renderToStaticNodeStream;
exports.renderToReadableStream = s.renderToReadableStream;
if (s.resume) {
Expand Down
1 change: 0 additions & 1 deletion packages/react-dom/npm/server.bun.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ exports.renderToReadableStream = b.renderToReadableStream;
if (b.resume) {
exports.resume = b.resume;
}
exports.renderToNodeStream = b.renderToNodeStream;
exports.renderToStaticNodeStream = b.renderToStaticNodeStream;
exports.renderToString = l.renderToString;
exports.renderToStaticMarkup = l.renderToStaticMarkup;
1 change: 0 additions & 1 deletion packages/react-dom/npm/server.edge.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ if (process.env.NODE_ENV === 'production') {

exports.version = b.version;
exports.renderToReadableStream = b.renderToReadableStream;
exports.renderToNodeStream = b.renderToNodeStream;
exports.renderToStaticNodeStream = b.renderToStaticNodeStream;
exports.renderToString = l.renderToString;
exports.renderToStaticMarkup = l.renderToStaticMarkup;
Expand Down
1 change: 0 additions & 1 deletion packages/react-dom/npm/server.node.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ if (process.env.NODE_ENV === 'production') {
exports.version = l.version;
exports.renderToString = l.renderToString;
exports.renderToStaticMarkup = l.renderToStaticMarkup;
exports.renderToNodeStream = l.renderToNodeStream;
exports.renderToStaticNodeStream = l.renderToStaticNodeStream;
exports.renderToPipeableStream = s.renderToPipeableStream;
if (s.resumeToPipeableStream) {
Expand Down
6 changes: 0 additions & 6 deletions packages/react-dom/server.browser.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,6 @@ export function renderToStaticMarkup() {
arguments,
);
}
export function renderToNodeStream() {
return require('./src/server/ReactDOMLegacyServerBrowser').renderToNodeStream.apply(
this,
arguments,
);
}
export function renderToStaticNodeStream() {
return require('./src/server/ReactDOMLegacyServerBrowser').renderToStaticNodeStream.apply(
this,
Expand Down
7 changes: 0 additions & 7 deletions packages/react-dom/server.bun.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,6 @@ export function renderToReadableStream() {
);
}

export function renderToNodeStream() {
return require('./src/server/react-dom-server.bun').renderToNodeStream.apply(
this,
arguments,
);
}

export function renderToStaticNodeStream() {
return require('./src/server/react-dom-server.bun').renderToStaticNodeStream.apply(
this,
Expand Down
7 changes: 0 additions & 7 deletions packages/react-dom/server.edge.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,6 @@ export function renderToReadableStream() {
);
}

export function renderToNodeStream() {
return require('./src/server/react-dom-server.edge').renderToNodeStream.apply(
this,
arguments,
);
}

export function renderToStaticNodeStream() {
return require('./src/server/react-dom-server.edge').renderToStaticNodeStream.apply(
this,
Expand Down
6 changes: 0 additions & 6 deletions packages/react-dom/server.node.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,6 @@ export function renderToStaticMarkup() {
arguments,
);
}
export function renderToNodeStream() {
return require('./src/server/ReactDOMLegacyServerNode').renderToNodeStream.apply(
this,
arguments,
);
}
export function renderToStaticNodeStream() {
return require('./src/server/ReactDOMLegacyServerNode').renderToStaticNodeStream.apply(
this,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -338,24 +338,12 @@ describe('ReactDOMServerIntegration', () => {
</LoggedInUser.Provider>
);

let streamAmy;
let streamBob;
expect(() => {
streamAmy = ReactDOMServer.renderToNodeStream(
AppWithUser('Amy'),
).setEncoding('utf8');
}).toErrorDev(
'renderToNodeStream is deprecated. Use renderToPipeableStream instead.',
{withoutStack: true},
);
expect(() => {
streamBob = ReactDOMServer.renderToNodeStream(
AppWithUser('Bob'),
).setEncoding('utf8');
}).toErrorDev(
'renderToNodeStream is deprecated. Use renderToPipeableStream instead.',
{withoutStack: true},
);
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
Expand Down Expand Up @@ -390,14 +378,9 @@ describe('ReactDOMServerIntegration', () => {
const streamCount = 34;

for (let i = 0; i < streamCount; i++) {
expect(() => {
streams[i] = ReactDOMServer.renderToNodeStream(
NthRender(i % 2 === 0 ? 'Expected to be recreated' : i),
).setEncoding('utf8');
}).toErrorDev(
'renderToNodeStream is deprecated. Use renderToPipeableStream instead.',
{withoutStack: true},
);
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
Expand All @@ -414,14 +397,9 @@ describe('ReactDOMServerIntegration', () => {

// Recreate those same streams.
for (let i = 0; i < streamCount; i += 2) {
expect(() => {
streams[i] = ReactDOMServer.renderToNodeStream(
NthRender(i),
).setEncoding('utf8');
}).toErrorDev(
'renderToNodeStream is deprecated. Use renderToPipeableStream instead.',
{withoutStack: true},
);
streams[i] = ReactDOMServer.renderToStaticNodeStream(
NthRender(i),
).setEncoding('utf8');
}

// Read a bit from all streams again.
Expand Down
68 changes: 0 additions & 68 deletions packages/react-dom/src/__tests__/ReactServerRendering-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -578,74 +578,6 @@ describe('ReactDOMServer', () => {
});
});

describe('renderToNodeStream', () => {
it('should generate simple markup', () => {
const SuccessfulElement = React.createElement(() => <img />);
let response;
expect(() => {
response = ReactDOMServer.renderToNodeStream(SuccessfulElement);
}).toErrorDev(
'renderToNodeStream is deprecated. Use renderToPipeableStream instead.',
{withoutStack: true},
);
expect(response.read().toString()).toMatch(new RegExp('<img' + '/>'));
});

it('should handle errors correctly', () => {
const FailingElement = React.createElement(() => {
throw new Error('An Error');
});
let response;
expect(() => {
response = ReactDOMServer.renderToNodeStream(FailingElement);
}).toErrorDev(
'renderToNodeStream is deprecated. Use renderToPipeableStream instead.',
{withoutStack: true},
);
return new Promise(resolve => {
response.once('error', () => {
resolve();
});
expect(response.read()).toBeNull();
});
});

it('should refer users to new apis when using suspense', 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.renderToNodeStream(
<div>
<React.Suspense fallback={'fallback'}>
<Suspender />
</React.Suspense>
</div>,
);
}).toErrorDev(
'renderToNodeStream is deprecated. Use renderToPipeableStream instead.',
{withoutStack: true},
);
await resolve();
expect(response.read().toString()).toEqual(
'<div><!--$-->resolved<!-- --><!--/$--></div>',
);
});
});

describe('renderToStaticNodeStream', () => {
it('should generate simple markup', () => {
const SuccessfulElement = React.createElement(() => <img />);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,4 @@ describe('ReactServerRenderingBrowser', () => {
ReactDOMServer.renderToStaticMarkup(<Greeting />),
);
});

it('throws meaningfully for server-only APIs', () => {
expect(() => ReactDOMServerBrowser.renderToNodeStream(<div />)).toThrow(
'ReactDOMServer.renderToNodeStream(): The streaming API is not available ' +
'in the browser. Use ReactDOMServer.renderToString() instead.',
);
expect(() =>
ReactDOMServerBrowser.renderToStaticNodeStream(<div />),
).toThrow(
'ReactDOMServer.renderToStaticNodeStream(): The streaming API is not available ' +
'in the browser. Use ReactDOMServer.renderToStaticMarkup() instead.',
);
});
});
8 changes: 0 additions & 8 deletions packages/react-dom/src/server/ReactDOMFizzServerBun.js
Original file line number Diff line number Diff line change
Expand Up @@ -146,13 +146,6 @@ function renderToReadableStream(
});
}

function renderToNodeStream() {
throw new Error(
'ReactDOMServer.renderToNodeStream(): The Node Stream API is not available ' +
'in Bun. Use ReactDOMServer.renderToReadableStream() instead.',
);
}

function renderToStaticNodeStream() {
throw new Error(
'ReactDOMServer.renderToStaticNodeStream(): The Node Stream API is not available ' +
Expand All @@ -162,7 +155,6 @@ function renderToStaticNodeStream() {

export {
renderToReadableStream,
renderToNodeStream,
renderToStaticNodeStream,
ReactVersion as version,
};
8 changes: 0 additions & 8 deletions packages/react-dom/src/server/ReactDOMLegacyServerBrowser.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,6 @@ function renderToStaticMarkup(
);
}

function renderToNodeStream() {
throw new Error(
'ReactDOMServer.renderToNodeStream(): The streaming API is not available ' +
'in the browser. Use ReactDOMServer.renderToString() instead.',
);
}

function renderToStaticNodeStream() {
throw new Error(
'ReactDOMServer.renderToStaticNodeStream(): The streaming API is not available ' +
Expand All @@ -56,7 +49,6 @@ function renderToStaticNodeStream() {
export {
renderToString,
renderToStaticMarkup,
renderToNodeStream,
renderToStaticNodeStream,
version,
};
6 changes: 1 addition & 5 deletions packages/react-dom/src/server/ReactDOMLegacyServerNode.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,7 @@
import type {ReactNodeList} from 'shared/ReactTypes';

import {version, renderToStringImpl} from './ReactDOMLegacyServerImpl';
import {
renderToNodeStream,
renderToStaticNodeStream,
} from './ReactDOMLegacyServerNodeStream';
import {renderToStaticNodeStream} from './ReactDOMLegacyServerNodeStream';

type ServerOptions = {
identifierPrefix?: string,
Expand Down Expand Up @@ -46,7 +43,6 @@ function renderToStaticMarkup(
export {
renderToString,
renderToStaticMarkup,
renderToNodeStream,
renderToStaticNodeStream,
version,
};
28 changes: 4 additions & 24 deletions packages/react-dom/src/server/ReactDOMLegacyServerNodeStream.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,9 @@ function onError() {
// Non-fatal errors are ignored.
}

function renderToNodeStreamImpl(
function renderToStaticNodeStream(
children: ReactNodeList,
options: void | ServerOptions,
generateStaticMarkup: boolean,
options?: ServerOptions,
): Readable {
function onAllReady() {
// We wait until everything has loaded before starting to write.
Expand All @@ -78,7 +77,7 @@ function renderToNodeStreamImpl(
const request = createRequest(
children,
resumableState,
createRenderState(resumableState, generateStaticMarkup),
createRenderState(resumableState, true),
createRootFormatContext(),
Infinity,
onError,
Expand All @@ -92,23 +91,4 @@ function renderToNodeStreamImpl(
return destination;
}

function renderToNodeStream(
children: ReactNodeList,
options?: ServerOptions,
): Readable {
if (__DEV__) {
console.error(
'renderToNodeStream is deprecated. Use renderToPipeableStream instead.',
);
}
return renderToNodeStreamImpl(children, options, false);
}

function renderToStaticNodeStream(
children: ReactNodeList,
options?: ServerOptions,
): Readable {
return renderToNodeStreamImpl(children, options, true);
}

export {renderToNodeStream, renderToStaticNodeStream};
export {renderToStaticNodeStream};
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@

export {
renderToReadableStream,
renderToNodeStream,
renderToStaticNodeStream,
version,
} from './ReactDOMFizzServerBun.js';

0 comments on commit 25d624d

Please sign in to comment.