summaryrefslogtreecommitdiff
path: root/packages/renderers/renderer-solid/server.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/renderers/renderer-solid/server.js')
-rw-r--r--packages/renderers/renderer-solid/server.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/packages/renderers/renderer-solid/server.js b/packages/renderers/renderer-solid/server.js
new file mode 100644
index 000000000..8af4d8aab
--- /dev/null
+++ b/packages/renderers/renderer-solid/server.js
@@ -0,0 +1,26 @@
+import { createComponent } from 'solid-js';
+import { renderToStringAsync, ssr } from 'solid-js/web/dist/server.js';
+
+async function check(Component, props, children) {
+ if (typeof Component !== 'function') return false;
+
+ const { html } = await renderToStaticMarkup(Component, props, children);
+ return typeof html === 'string';
+}
+
+async function renderToStaticMarkup(Component, props, children) {
+ const html = await renderToStringAsync(() => (
+ () => createComponent(Component, {
+ ...props,
+ // In Solid SSR mode, `ssr` creates the expected structure for `children`.
+ // In Solid client mode, `ssr` is just a stub.
+ children: ssr([`<astro-fragment>${children}</astro-fragment>`]),
+ })
+ ));
+ return { html };
+}
+
+export default {
+ check,
+ renderToStaticMarkup,
+};
g src='//www.gravatar.com/avatar/1d54ea6076477a62a666940080b8c1cd?s=13&d=retro' width='13' height='13' alt='Gravatar' /> Juan Martín Seery 16-814/+539 2022-04-10update test names containing spacesGravatar Fred K. Schott 26-17/+17 2022-04-11[ci] formatGravatar FredKSchott 2-8/+7 2022-04-10Fix SSR static build public file copying. fixes #3016 (#3037)Gravatar Steve Lee 8-5/+48 2022-04-10fix our weird beta release issues (#3031)Gravatar Fred K. Schott 4-6/+116 2022-04-10update tailwind integration readmeGravatar Fred K. Schott 2-9/+38 2022-04-10Fixed MD Lint issues (#3038)Gravatar Rafid Muhymin Wafi 1-12/+11