diff options
author | 2024-04-30 14:01:21 +0200 | |
---|---|---|
committer | 2024-04-30 08:01:21 -0400 | |
commit | fd7a9ed3379a123f02f297b69fa5da0053e84a89 (patch) | |
tree | 8937a30a99a66cec1ae760fcc743703c088a8f30 /packages/integrations/react | |
parent | 36bb3b6025eb51f6e027a76a514cc7ebb29deb10 (diff) | |
download | astro-fd7a9ed3379a123f02f297b69fa5da0053e84a89.tar.gz astro-fd7a9ed3379a123f02f297b69fa5da0053e84a89.tar.zst astro-fd7a9ed3379a123f02f297b69fa5da0053e84a89.zip |
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>
Diffstat (limited to 'packages/integrations/react')
-rw-r--r-- | packages/integrations/react/server.js | 36 |
1 files changed, 3 insertions, 33 deletions
diff --git a/packages/integrations/react/server.js b/packages/integrations/react/server.js index b2e94fbf0..2ff3f55fb 100644 --- a/packages/integrations/react/server.js +++ b/packages/integrations/react/server.js @@ -106,18 +106,10 @@ async function renderToStaticMarkup(Component, props, { default: children, ...sl identifierPrefix: prefix, }; let html; - if (metadata?.hydrate) { - if ('renderToReadableStream' in ReactDOM) { - html = await renderToReadableStreamAsync(vnode, renderOptions); - } else { - html = await renderToPipeableStreamAsync(vnode, renderOptions); - } + if ('renderToReadableStream' in ReactDOM) { + html = await renderToReadableStreamAsync(vnode, renderOptions); } else { - if ('renderToReadableStream' in ReactDOM) { - html = await renderToReadableStreamAsync(vnode, renderOptions); - } else { - html = await renderToStaticNodeStreamAsync(vnode, renderOptions); - } + html = await renderToPipeableStreamAsync(vnode, renderOptions); } return { html, attrs }; } @@ -150,28 +142,6 @@ async function renderToPipeableStreamAsync(vnode, options) { }); } -async function renderToStaticNodeStreamAsync(vnode, options) { - const Writable = await getNodeWritable(); - let html = ''; - return new Promise((resolve, reject) => { - let stream = ReactDOM.renderToStaticNodeStream(vnode, options); - stream.on('error', (err) => { - reject(err); - }); - stream.pipe( - new Writable({ - write(chunk, _encoding, callback) { - html += chunk.toString('utf-8'); - callback(); - }, - destroy() { - resolve(html); - }, - }) - ); - }); -} - /** * Use a while loop instead of "for await" due to cloudflare and Vercel Edge issues * See https://github.com/facebook/react/issues/24169 |