diff --git a/packages/react/src/ssr.js b/packages/react/src/ssr.js index 9b681b9..66ef321 100644 --- a/packages/react/src/ssr.js +++ b/packages/react/src/ssr.js @@ -1,10 +1,13 @@ import {Transform} from 'stream'; +import {D} from '@flecks/core'; import React from 'react'; import ReactDOMServer from '@hot-loader/react-dom/server'; import root from './root'; +const debug = D('@flecks/react/root'); + class Ssr extends Transform { constructor(flecks, req) { @@ -18,16 +21,17 @@ class Ssr extends Transform { const string = chunk.toString('utf8'); if (-1 !== string.indexOf('
')) { try { - this.push( - string.replace( - '
', - `
${ - ReactDOMServer.renderToString(React.createElement(await root(this.flecks, this.req))) - }
`, - ), + const renderedRoot = ReactDOMServer.renderToString( + React.createElement(await root(this.flecks, this.req)), ); + const rendered = string.replaceAll( + '
', + `
${renderedRoot}
`, + ); + this.push(rendered); } - catch (e) { + catch (error) { + debug('React SSR failed: %O', error); this.push(string); } }