Skip to content

Commit fd7a9ed

Browse files
Angrigobluwy
andauthored
fix a deprecated method in react integration using SSR: renderToStaticNodeStream (#10893)
* deprecated method renderToStaticNodeStream * Create twelve-bulldogs-raise.md --------- Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com>
1 parent 36bb3b6 commit fd7a9ed

2 files changed

Lines changed: 8 additions & 33 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@astrojs/react": patch
3+
---
4+
5+
Removes using deprecated `ReactDOMServer.renderToStaticNodeStream` API

‎packages/integrations/react/server.js‎

Lines changed: 3 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -106,18 +106,10 @@ async function renderToStaticMarkup(Component, props, { default: children, ...sl
106106
identifierPrefix: prefix,
107107
};
108108
let html;
109-
if (metadata?.hydrate) {
110-
if ('renderToReadableStream' in ReactDOM) {
111-
html = await renderToReadableStreamAsync(vnode, renderOptions);
112-
} else {
113-
html = await renderToPipeableStreamAsync(vnode, renderOptions);
114-
}
109+
if ('renderToReadableStream' in ReactDOM) {
110+
html = await renderToReadableStreamAsync(vnode, renderOptions);
115111
} else {
116-
if ('renderToReadableStream' in ReactDOM) {
117-
html = await renderToReadableStreamAsync(vnode, renderOptions);
118-
} else {
119-
html = await renderToStaticNodeStreamAsync(vnode, renderOptions);
120-
}
112+
html = await renderToPipeableStreamAsync(vnode, renderOptions);
121113
}
122114
return { html, attrs };
123115
}
@@ -150,28 +142,6 @@ async function renderToPipeableStreamAsync(vnode, options) {
150142
});
151143
}
152144

153-
async function renderToStaticNodeStreamAsync(vnode, options) {
154-
const Writable = await getNodeWritable();
155-
let html = '';
156-
return new Promise((resolve, reject) => {
157-
let stream = ReactDOM.renderToStaticNodeStream(vnode, options);
158-
stream.on('error', (err) => {
159-
reject(err);
160-
});
161-
stream.pipe(
162-
new Writable({
163-
write(chunk, _encoding, callback) {
164-
html += chunk.toString('utf-8');
165-
callback();
166-
},
167-
destroy() {
168-
resolve(html);
169-
},
170-
})
171-
);
172-
});
173-
}
174-
175145
/**
176146
* Use a while loop instead of "for await" due to cloudflare and Vercel Edge issues
177147
* See https://github.com/facebook/react/issues/24169

0 commit comments

Comments
 (0)