@docusaurus/core
Version:
Easy to Maintain Open Source Documentation Websites
26 lines (25 loc) • 904 B
JavaScript
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import { renderToPipeableStream } from 'react-dom/server';
import { PassThrough } from 'node:stream';
import { text } from 'node:stream/consumers';
// See also https://github.com/facebook/react/issues/31134
// See also https://github.com/facebook/docusaurus/issues/9985#issuecomment-2396367797
export async function renderToHtml(app) {
return new Promise((resolve, reject) => {
const passThrough = new PassThrough();
const { pipe } = renderToPipeableStream(app, {
onError(error) {
reject(error);
},
onAllReady() {
pipe(passThrough);
text(passThrough).then(resolve, reject);
},
});
});
}