diff options
Diffstat (limited to 'packages/renderers/renderer-preact/server.js')
-rw-r--r-- | packages/renderers/renderer-preact/server.js | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/packages/renderers/renderer-preact/server.js b/packages/renderers/renderer-preact/server.js index 441ce8ef0..b50468ab5 100644 --- a/packages/renderers/renderer-preact/server.js +++ b/packages/renderers/renderer-preact/server.js @@ -1,5 +1,5 @@ import { h, Component as BaseComponent } from 'preact'; -import { renderToString } from 'preact-render-to-string'; +import render from 'preact-render-to-string'; import StaticHtml from './static-html.js'; function check(Component, props, children) { @@ -9,20 +9,23 @@ function check(Component, props, children) { return BaseComponent.isPrototypeOf(Component); } - const { html } = renderToStaticMarkup(Component, props, children); + try { + const { html } = renderToStaticMarkup(Component, props, children); + if (typeof html !== 'string') { + return false; + } - if (typeof html !== 'string') { + // There are edge cases (SolidJS) where Preact *might* render a string, + // but components would be <undefined></undefined> + + return !/\<undefined\>/.test(html); + } catch (err) { return false; } - - // There are edge cases (SolidJS) where Preact *might* render a string, - // but components would be <undefined></undefined> - - return !/\<undefined\>/.test(html); } function renderToStaticMarkup(Component, props, children) { - const html = renderToString(h(Component, { ...props, children: h(StaticHtml, { value: children }), innerHTML: children })); + const html = render(h(Component, { ...props, children: h(StaticHtml, { value: children }), innerHTML: children })); return { html }; } |