diff --git a/src/rules/no-unused-svelte-ignore.ts b/src/rules/no-unused-svelte-ignore.ts
index 65e5d2bd8..2d8c66e76 100644
--- a/src/rules/no-unused-svelte-ignore.ts
+++ b/src/rules/no-unused-svelte-ignore.ts
@@ -19,6 +19,9 @@ export default createRule("no-unused-svelte-ignore", {
},
create(context) {
+ if (!context.parserServices.isSvelte) {
+ return {}
+ }
const sourceCode = context.getSourceCode()
const ignoreComments: IgnoreItem[] = []
diff --git a/tests/fixtures/rules/no-unused-svelte-ignore/valid/ignore-js-input.js b/tests/fixtures/rules/no-unused-svelte-ignore/valid/ignore-js-input.js
new file mode 100644
index 000000000..ae6e57070
--- /dev/null
+++ b/tests/fixtures/rules/no-unused-svelte-ignore/valid/ignore-js-input.js
@@ -0,0 +1,4 @@
+//
+//
+/* svelte-ignore a11y-autofocus a11y-missing-attribute */
+//
diff --git a/tests/utils/utils.ts b/tests/utils/utils.ts
index ebdf9173e..56b70694d 100644
--- a/tests/utils/utils.ts
+++ b/tests/utils/utils.ts
@@ -61,7 +61,7 @@ export function loadTestCases(
valid?: (RuleTester.ValidTestCase | string)[]
invalid?: RuleTester.InvalidTestCase[]
}
- filter: (file: string) => boolean
+ filter?: (file: string) => boolean
},
): {
valid: RuleTester.ValidTestCase[]
@@ -88,8 +88,8 @@ export function loadTestCases(
.filter(filter)
.map((inputFile) => {
const config = getConfig(ruleName, inputFile)
- const errorFile = inputFile.replace(/input\.svelte$/u, "errors.json")
- const outputFile = inputFile.replace(/input\.svelte$/u, "output.svelte")
+ const errorFile = inputFile.replace(/input\.[a-z]+$/u, "errors.json")
+ const outputFile = inputFile.replace(/input\.[a-z]+$/u, "output.svelte")
let errors
try {
errors = fs.readFileSync(errorFile, "utf8")
@@ -147,7 +147,7 @@ function* itrListupInput(rootDir: string): IterableIterator {
continue
}
const abs = path.join(rootDir, filename)
- if (filename.endsWith("input.svelte")) {
+ if (path.basename(filename, path.extname(filename)).endsWith("input")) {
yield abs
} else if (fs.statSync(abs).isDirectory()) {
yield* itrListupInput(abs)
@@ -161,8 +161,8 @@ function writeFixtures(
{ force }: { force?: boolean } = {},
) {
const linter = getLinter(ruleName)
- const errorFile = inputFile.replace(/input\.svelte$/u, "errors.json")
- const outputFile = inputFile.replace(/input\.svelte$/u, "output.svelte")
+ const errorFile = inputFile.replace(/input\.[a-z]+$/u, "errors.json")
+ const outputFile = inputFile.replace(/input\.[a-z]+$/u, "output.svelte")
const config = getConfig(ruleName, inputFile)
@@ -222,23 +222,17 @@ function getConfig(ruleName: string, inputFile: string) {
const filename = inputFile.slice(inputFile.indexOf(ruleName))
const code = fs.readFileSync(inputFile, "utf8")
let config
- let configFile: string = inputFile.replace(/input\.svelte$/u, "config.json")
+ let configFile: string = inputFile.replace(/input\.[a-z]+$/u, "config.json")
if (!fs.existsSync(configFile)) {
configFile = path.join(path.dirname(inputFile), "_config.json")
}
if (fs.existsSync(configFile)) {
config = JSON.parse(fs.readFileSync(configFile, "utf8"))
}
- if (config && typeof config === "object") {
- return Object.assign(
- { parser: require.resolve("svelte-eslint-parser") },
- config,
- { code, filename },
- )
- }
- // default
- return Object.assign(
- { parser: require.resolve("svelte-eslint-parser") },
- { code, filename },
- )
+ const parser =
+ path.extname(filename) === ".svelte"
+ ? require.resolve("svelte-eslint-parser")
+ : undefined
+
+ return Object.assign({ parser }, config, { code, filename })
}