diff --git a/.changeset/calm-carpets-shave.md b/.changeset/calm-carpets-shave.md new file mode 100644 index 000000000..9288b78c2 --- /dev/null +++ b/.changeset/calm-carpets-shave.md @@ -0,0 +1,5 @@ +--- +"eslint-plugin-svelte": patch +--- + +fix: `plugin:svelte/all` config diff --git a/src/configs/all.ts b/src/configs/all.ts index a62f5bd84..21a678c11 100644 --- a/src/configs/all.ts +++ b/src/configs/all.ts @@ -6,6 +6,14 @@ const baseExtend = export = { extends: [baseExtend], rules: Object.fromEntries( - rules.map((rule) => [`svelte/${rule.meta.docs.ruleName}`, "error"]), + rules + .map((rule) => [`svelte/${rule.meta.docs.ruleName}`, "error"]) + .filter( + ([ruleName]) => + ![ + // Does not work without options. + "svelte/no-restricted-html-elements", + ].includes(ruleName), + ), ), } diff --git a/tests/src/configs/all.ts b/tests/src/configs/all.ts new file mode 100644 index 000000000..7391bec8e --- /dev/null +++ b/tests/src/configs/all.ts @@ -0,0 +1,34 @@ +import assert from "assert" +import eslint from "eslint" +import plugin from "../../../src/index" + +describe("`all` config", () => { + it("`all` config should work. ", async () => { + const code = `{@html a+b}` + + const linter = new eslint.ESLint({ + plugins: { + svelte: plugin as never, + }, + baseConfig: { + parserOptions: { + ecmaVersion: 2020, + }, + extends: ["plugin:svelte/all"], + }, + useEslintrc: false, + }) + const result = await linter.lintText(code, { filePath: "test.svelte" }) + const messages = result[0].messages + + assert.deepStrictEqual( + messages.map((m) => ({ ruleId: m.ruleId, line: m.line })), + [ + { + ruleId: "svelte/no-at-html-tags", + line: 1, + }, + ], + ) + }) +})