summaryrefslogtreecommitdiff
path: root/src/frontend/render/svelte.ts
diff options
context:
space:
mode:
authorGravatar Nate Moore <natemoo-re@users.noreply.github.com> 2021-04-15 10:55:50 -0500
committerGravatar GitHub <noreply@github.com> 2021-04-15 10:55:50 -0500
commit22ca9e0aacf26bf82aa5d0ddd6d1e1d495a1a945 (patch)
treedb56218dd905aca708e39fae6c58d31f99df24dc /src/frontend/render/svelte.ts
parentea33d7b2ab30f6434986bb0d8671e7f681076268 (diff)
downloadastro-22ca9e0aacf26bf82aa5d0ddd6d1e1d495a1a945.tar.gz
astro-22ca9e0aacf26bf82aa5d0ddd6d1e1d495a1a945.tar.zst
astro-22ca9e0aacf26bf82aa5d0ddd6d1e1d495a1a945.zip
Support children inside of components (#72)
* chore(examples): add kitchen-sink * feat: support children in rendered components * feat: add support for rendering children in Svelte * fix: cleanup p/react fragment children * chore: add @ts-nocheck to svelte files * chore: update lockfiles * fix: types * feat: memoize frontend/renderer/utils * fix: disable eslint for compiled SvelteWrapper * fix: add missing dep Co-authored-by: Nate Moore <nate@skypack.dev>
Diffstat (limited to 'src/frontend/render/svelte.ts')
-rw-r--r--src/frontend/render/svelte.ts14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/frontend/render/svelte.ts b/src/frontend/render/svelte.ts
index d3c11638d..7d657c3f7 100644
--- a/src/frontend/render/svelte.ts
+++ b/src/frontend/render/svelte.ts
@@ -1,20 +1,20 @@
import type { ComponentRenderer } from '../../@types/renderer';
import type { SvelteComponent } from 'svelte';
import { createRenderer } from './renderer';
+import SvelteWrapper from '../SvelteWrapper.svelte.server';
const SvelteRenderer: ComponentRenderer<SvelteComponent> = {
renderStatic(Component) {
return async (props, ...children) => {
- const { html } = Component.render(props);
+ const { html } = SvelteWrapper.render({ __astro_component: Component, __astro_children: children.join('\n'), ...props });
return html;
};
},
- render({ Component, root, props }) {
- return `new ${Component}({
- target: ${root},
- props: ${props},
- hydrate: true
- })`;
+ imports: {
+ 'astro/frontend/runtime/svelte': ['default: render']
+ },
+ render({ Component, root, props, childrenAsString }) {
+ return `render(${root}, ${Component}, ${props}, ${childrenAsString});`;
},
};