From 4da65c5fbe6bdd51da0c743ff67b546951627a83 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Fri, 14 Feb 2025 15:01:32 +0100 Subject: [PATCH] fix: ensure AST analysis on `svelte.js` modules succeeds This was the result of a `@ts-expect-error` silencing other type errors, which lead to this creeping in. This changes it so that the object is fully set, so we'll get type errors when new properties need to be added fixes #15284 --- .changeset/good-spiders-own.md | 5 +++++ .../src/compiler/phases/2-analyze/index.js | 16 ++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 .changeset/good-spiders-own.md diff --git a/.changeset/good-spiders-own.md b/.changeset/good-spiders-own.md new file mode 100644 index 000000000000..aacbda133ee7 --- /dev/null +++ b/.changeset/good-spiders-own.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: ensure AST analysis on `svelte.js` modules succeeds diff --git a/packages/svelte/src/compiler/phases/2-analyze/index.js b/packages/svelte/src/compiler/phases/2-analyze/index.js index 846abcf7dfc9..93c438c8529f 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/index.js +++ b/packages/svelte/src/compiler/phases/2-analyze/index.js @@ -258,8 +258,20 @@ export function analyze_module(ast, options) { { scope, scopes, - // @ts-expect-error TODO - analysis + analysis: /** @type {ComponentAnalysis} */ (analysis), + derived_state: [], + // TODO the following are not needed for modules, but we have to pass them in order to avoid type error, + // and reducing the type would result in a lot of tedious type casts elsewhere - find a good solution one day + ast_type: /** @type {any} */ (null), + component_slots: new Set(), + expression: null, + function_depth: 0, + has_props_rune: false, + instance_scope: /** @type {any} */ (null), + options: /** @type {ValidatedCompileOptions} */ (options), + parent_element: null, + reactive_statement: null, + reactive_statements: new Map() }, visitors );