From e6122d9a9e071891a15c69294786c4bbe125ffd5 Mon Sep 17 00:00:00 2001 From: baseballyama Date: Tue, 23 Sep 2025 11:17:00 +0900 Subject: [PATCH] fix(valid-compile): use compiler options if provided --- .changeset/late-waves-wonder.md | 5 +++++ .../src/shared/svelte-compile-warns/index.ts | 1 + .../invalid/compiler-options-config.json | 11 +++++++++++ .../invalid/compiler-options-errors.yaml | 8 ++++++++ .../invalid/compiler-options-input.svelte | 9 +++++++++ .../invalid/compiler-options-requirements.json | 3 +++ 6 files changed, 37 insertions(+) create mode 100644 .changeset/late-waves-wonder.md create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/compiler-options-config.json create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/compiler-options-errors.yaml create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/compiler-options-input.svelte create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/compiler-options-requirements.json diff --git a/.changeset/late-waves-wonder.md b/.changeset/late-waves-wonder.md new file mode 100644 index 000000000..82aa9d500 --- /dev/null +++ b/.changeset/late-waves-wonder.md @@ -0,0 +1,5 @@ +--- +'eslint-plugin-svelte': patch +--- + +fix(valid-compile): use compiler options if provided diff --git a/packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/index.ts b/packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/index.ts index c77e5ca62..032c627ae 100644 --- a/packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/index.ts +++ b/packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/index.ts @@ -407,6 +407,7 @@ function getWarningsFromCode( } { try { const result = compiler.compile(code, { + ...context.sourceCode.parserServices.svelteParseContext?.svelteConfig?.compilerOptions, generate: false, ...(isCustomElement(context.sourceCode.ast) ? { customElement: true } : {}) }); diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/compiler-options-config.json b/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/compiler-options-config.json new file mode 100644 index 000000000..e41bbde2b --- /dev/null +++ b/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/compiler-options-config.json @@ -0,0 +1,11 @@ +{ + "languageOptions": { + "parserOptions": { + "svelteConfig": { + "compilerOptions": { + "runes": true + } + } + } + } +} diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/compiler-options-errors.yaml b/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/compiler-options-errors.yaml new file mode 100644 index 000000000..2cc22ad96 --- /dev/null +++ b/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/compiler-options-errors.yaml @@ -0,0 +1,8 @@ +- message: >- + `count` is updated, but is not declared with `$state(...)`. Changing its + value will not correctly trigger updates + + https://svelte.dev/e/non_reactive_update(non_reactive_update) + line: 2 + column: 6 + suggestions: null diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/compiler-options-input.svelte b/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/compiler-options-input.svelte new file mode 100644 index 000000000..231a6fdc8 --- /dev/null +++ b/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/compiler-options-input.svelte @@ -0,0 +1,9 @@ + + +{count}
+ diff --git a/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/compiler-options-requirements.json b/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/compiler-options-requirements.json new file mode 100644 index 000000000..498661308 --- /dev/null +++ b/packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/compiler-options-requirements.json @@ -0,0 +1,3 @@ +{ + "svelte": ">=5.0.0" +}