Skip to content

Commit 3c8593f

Browse files
committed
feat: support warningFilter in valid-compile rule
1 parent fb1001d commit 3c8593f

File tree

20 files changed

+80
-6
lines changed

20 files changed

+80
-6
lines changed

.changeset/great-turkeys-hang.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'eslint-plugin-svelte': minor
3+
---
4+
5+
feat: support `warningFilter` in `valid-compile` rule

packages/eslint-plugin-svelte/src/rules/valid-compile.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,22 @@ export default createRule('valid-compile', {
2727
if (!sourceCode.parserServices.isSvelte) {
2828
return {};
2929
}
30-
const onwarn = sourceCode.parserServices.svelteParseContext?.svelteConfig?.onwarn;
30+
const { onwarn, warningFilter } =
31+
sourceCode.parserServices.svelteParseContext?.svelteConfig ?? {};
3132

32-
const transform: (warning: Warning) => Warning | null = onwarn
33+
const transform: (warning: Warning) => Warning | null = warningFilter
3334
? (warning) => {
3435
if (!warning.code) return warning;
35-
let result: Warning | null = null;
36-
onwarn(warning, (reportWarn) => (result = reportWarn));
37-
return result;
36+
return warningFilter(warning) ? warning : null;
3837
}
39-
: (warning) => warning;
38+
: onwarn
39+
? (warning) => {
40+
if (!warning.code) return warning;
41+
let result: Warning | null = null;
42+
onwarn(warning, (reportWarn) => (result = reportWarn));
43+
return result;
44+
}
45+
: (warning) => warning;
4046

4147
const ignoreWarnings = Boolean(context.options[0]?.ignoreWarnings);
4248

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/**
2+
* @typedef {import("svelte/compiler").Warning} Warning
3+
*/
4+
module.exports = {
5+
languageOptions: {
6+
parserOptions: {
7+
svelteConfig: {
8+
warningFilter: (warning) => {
9+
return (
10+
warning.code !== 'a11y_missing_attribute' && warning.code !== 'a11y-missing-attribute'
11+
);
12+
}
13+
}
14+
}
15+
}
16+
};

0 commit comments

Comments
 (0)