Skip to content

Commit ba742ee

Browse files
committed
support regex
1 parent 30ba201 commit ba742ee

File tree

6 files changed

+22
-3
lines changed

6 files changed

+22
-3
lines changed

packages/eslint-plugin-svelte/src/rules/no-unused-class-name.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,18 @@ export default createRule('no-unused-class-name', {
5757
? findClassesInPostCSSNode(styleContext.sourceAst, sourceCode.parserServices)
5858
: [];
5959
for (const className in classesUsedInTemplate) {
60-
if (!allowedClassNames.includes(className) && !classesUsedInStyle.includes(className)) {
60+
if (
61+
!allowedClassNames.includes(className) &&
62+
!allowedClassNames.some((allowedClassName: string) => {
63+
const regex = /^\/(.*)\/$/.exec(allowedClassName);
64+
if (regex == null || regex[1] == null) {
65+
return false;
66+
}
67+
68+
return new RegExp(regex[1]).test(className);
69+
}) &&
70+
!classesUsedInStyle.includes(className)
71+
) {
6172
context.report({
6273
loc: classesUsedInTemplate[className],
6374
message: `Unused class "${className}".`
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"options": [{ "allowedClassNames": ["div-class"] }]
2+
"options": [{ "allowedClassNames": ["div-class", "/^p-\\d{1,2}$/"] }]
33
}

packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/allowed-class-names/partially-allowed-class-name01-errors.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,7 @@
22
line: 3
33
column: 1
44
suggestions: null
5+
- message: Unused class "p-100".
6+
line: 5
7+
column: 1
8+
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
<div class="div-class">Hello</div>
22

33
<span class="span-class">World!</span>
4+
5+
<span class="p-100">Regex!</span>
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"options": [{ "allowedClassNames": ["div-class", "span-class"] }]
2+
"options": [{ "allowedClassNames": ["div-class", "span-class", "/^p-\\d{1,2}$/"] }]
33
}
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
<div class="div-class">Hello</div>
22

33
<span class="span-class">World!</span>
4+
5+
<span class="p-2">Regex!</span>

0 commit comments

Comments
 (0)