summaryrefslogtreecommitdiff
path: root/packages/integrations/svelte/src/server.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/svelte/src/server.ts')
-rw-r--r--packages/integrations/svelte/src/server.ts12
1 files changed, 7 insertions, 5 deletions
diff --git a/packages/integrations/svelte/src/server.ts b/packages/integrations/svelte/src/server.ts
index 4b0fccb3d..14f869228 100644
--- a/packages/integrations/svelte/src/server.ts
+++ b/packages/integrations/svelte/src/server.ts
@@ -1,4 +1,4 @@
-import type { AstroComponentMetadata } from 'astro';
+import type { AstroComponentMetadata, NamedSSRLoadedRendererValue } from 'astro';
import { createRawSnippet } from 'svelte';
import { render } from 'svelte/server';
import { incrementId } from './context.js';
@@ -13,9 +13,9 @@ function check(Component: any) {
return Component.toString().includes('$$payload');
}
-function needsHydration(metadata: AstroComponentMetadata) {
+function needsHydration(metadata?: AstroComponentMetadata) {
// Adjust how this is hydrated only when the version of Astro supports `astroStaticSlot`
- return metadata.astroStaticSlot ? !!metadata.hydrate : true;
+ return metadata?.astroStaticSlot ? !!metadata.hydrate : true;
}
async function renderToStaticMarkup(
@@ -23,7 +23,7 @@ async function renderToStaticMarkup(
Component: any,
props: Record<string, any>,
slotted: Record<string, any>,
- metadata: AstroComponentMetadata,
+ metadata?: AstroComponentMetadata,
) {
const tagName = needsHydration(metadata) ? 'astro-slot' : 'astro-static-slot';
@@ -66,9 +66,11 @@ async function renderToStaticMarkup(
return { html: result.body };
}
-export default {
+const renderer: NamedSSRLoadedRendererValue = {
name: '@astrojs/svelte',
check,
renderToStaticMarkup,
supportsAstroStaticSlot: true,
};
+
+export default renderer;