Skip to content

Instantly share code, notes, and snippets.

@akrisiun
Forked from tubalmartin/render.js
Created July 4, 2019 12:00
Show Gist options
  • Save akrisiun/b49a1c5e507332bb11c0cec8643c6aaf to your computer and use it in GitHub Desktop.
Save akrisiun/b49a1c5e507332bb11c0cec8643c6aaf to your computer and use it in GitHub Desktop.
// https://medium.com/homeaway-tech-blog/profiling-react-server-side-rendering-to-free-the-node-js-event-loop-7f0fe455a901
const ReactDOMServer = require('react-dom/server');
const render = (reactComponent) => {
return new Promise((resolve, reject) => {
const body = [];
const bodyStream = ReactDOMServer.renderToNodeStream(reactComponent);
bodyStream.on('data', (chunk) => {
body.push(chunk.toString());
});
bodyStream.on('error', (err) => {
reject(err);
});
bodyStream.on('end', () => {
resolve(body.join(''));
});
});
};
export default render;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment