diff --git a/packages/svelte/src/compiler/phases/3-transform/client/transform-client.js b/packages/svelte/src/compiler/phases/3-transform/client/transform-client.js index 07c3600d84..1a845c1243 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/transform-client.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/transform-client.js @@ -130,7 +130,7 @@ export function client_component(source, analysis, options) { }, ExportNamedDeclaration(node, context) { if (node.declaration) { - return remove_types.ExportDeclaration(context.visit(node.declaration), context); + return remove_types.ExportNamedDeclaration(context.visit(node.declaration), context); } return b.empty; diff --git a/packages/svelte/src/compiler/phases/3-transform/server/transform-server.js b/packages/svelte/src/compiler/phases/3-transform/server/transform-server.js index 6a07006b9f..04c186a7ba 100644 --- a/packages/svelte/src/compiler/phases/3-transform/server/transform-server.js +++ b/packages/svelte/src/compiler/phases/3-transform/server/transform-server.js @@ -1930,7 +1930,7 @@ export function server_component(analysis, options) { }, ExportNamedDeclaration(node, context) { if (node.declaration) { - return remove_types.ExportDeclaration(context.visit(node.declaration), context); + return remove_types.ExportNamedDeclaration(context.visit(node.declaration), context); } return b.empty; diff --git a/packages/svelte/src/compiler/phases/3-transform/typescript.js b/packages/svelte/src/compiler/phases/3-transform/typescript.js index 5abe44a115..27e69c87bf 100644 --- a/packages/svelte/src/compiler/phases/3-transform/typescript.js +++ b/packages/svelte/src/compiler/phases/3-transform/typescript.js @@ -5,18 +5,26 @@ export const remove_types = { ImportDeclaration(node) { if (node.importKind === 'type') return b.empty; - const specifiers = node.specifiers.filter((s) => s.importKind === 'value'); - if (specifiers.length === 0) return b.empty; + if (node.specifiers) { + const specifiers = node.specifiers.filter((s) => s.importKind !== 'type'); + if (specifiers.length === 0) return b.empty; - return { ...node, specifiers }; + return { ...node, specifiers }; + } + + return node; }, - ExportNamedDeclaration(node, context) { + ExportNamedDeclaration(node) { if (node.importKind === 'type') return b.empty; - const specifiers = node.specifiers.filter((s) => s.importKind === 'value'); - if (specifiers.length === 0) return b.empty; + if (node.specifiers) { + const specifiers = node.specifiers.filter((s) => s.importKind !== 'type'); + if (specifiers.length === 0) return b.empty; + + return { ...node, specifiers }; + } - return { ...node, specifiers }; + return node; }, TSAsExpression(node, context) { return context.visit(node.expression);