summaryrefslogtreecommitdiff
path: root/packages/integrations/svelte/client-v5.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/svelte/client-v5.js')
-rw-r--r--packages/integrations/svelte/client-v5.js60
1 files changed, 0 insertions, 60 deletions
diff --git a/packages/integrations/svelte/client-v5.js b/packages/integrations/svelte/client-v5.js
deleted file mode 100644
index 123e544f6..000000000
--- a/packages/integrations/svelte/client-v5.js
+++ /dev/null
@@ -1,60 +0,0 @@
-import { createRawSnippet, hydrate, mount, unmount } from 'svelte';
-
-const existingApplications = new WeakMap();
-
-export default (element) => {
- return async (Component, props, slotted, { client }) => {
- if (!element.hasAttribute('ssr')) return;
-
- let children = undefined;
- let $$slots = undefined;
- let renderFns = {};
-
- for (const [key, value] of Object.entries(slotted)) {
- // Legacy slot support
- $$slots ??= {};
- if (key === 'default') {
- $$slots.default = true;
- children = createRawSnippet(() => ({
- render: () => `<astro-slot>${value}</astro-slot>`,
- }));
- } else {
- $$slots[key] = createRawSnippet(() => ({
- render: () => `<astro-slot name="${key}">${value}</astro-slot>`,
- }));
- }
- // @render support for Svelte ^5.0
- if (key === 'default') {
- renderFns.children = createRawSnippet(() => ({
- render: () => `<astro-slot>${value}</astro-slot>`,
- }));
- } else {
- renderFns[key] = createRawSnippet(() => ({
- render: () => `<astro-slot name="${key}">${value}</astro-slot>`,
- }));
- }
- }
-
- const bootstrap = client !== 'only' ? hydrate : mount;
- if (existingApplications.has(element)) {
- existingApplications.get(element).$set({
- ...props,
- children,
- $$slots,
- ...renderFns,
- });
- } else {
- const component = bootstrap(Component, {
- target: element,
- props: {
- ...props,
- children,
- $$slots,
- ...renderFns,
- },
- });
- existingApplications.set(element, component);
- element.addEventListener('astro:unmount', () => unmount(component), { once: true });
- }
- };
-};