Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
slorber committed Oct 7, 2024
1 parent 30fcaa9 commit 31eef66
Showing 1 changed file with 24 additions and 4 deletions.
28 changes: 24 additions & 4 deletions packages/docusaurus/src/client/renderToHtml.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,31 @@
*/

import type {ReactNode} from 'react';
import {renderToReadableStream} from 'react-dom/server.browser';
// @ts-expect-error: see https://github.com/facebook/react/issues/31134
import {renderToReadableStream as renderToReadableStreamImpl} from 'react-dom/server.browser';
import {
renderToString,
type renderToReadableStream as renderToReadableStreamType,
} from 'react-dom/server';
import {text} from 'stream/consumers';

const renderToReadableStream: typeof renderToReadableStreamType =
renderToReadableStreamImpl;

export async function renderToHtml(app: ReactNode): Promise<string> {
const stream = await renderToReadableStream(app);
await stream.allReady;
return text(stream);
return new Promise((resolve, reject) => {
renderToReadableStream(app, {
onError: (error) => reject(error),
}).then(async (stream) => {
await stream.allReady;
// @ts-expect-error: it works fine
const html = await text(stream);

if (html !== renderToString(app)) {
throw new Error('Bad');
}

resolve(html);
}, reject);
});
}

0 comments on commit 31eef66

Please sign in to comment.