Skip to content

Commit 49da137

Browse files
authored
feat(html-self-closing)!: make configuration [0] preset or override config
1 parent b235a08 commit 49da137

File tree

6 files changed

+48
-49
lines changed

6 files changed

+48
-49
lines changed

src/rules/html-self-closing.ts

+48-44
Original file line numberDiff line numberDiff line change
@@ -27,27 +27,28 @@ export default createRule("html-self-closing", {
2727
},
2828
schema: [
2929
{
30-
enum: ["all", "html", "none"],
31-
default: "all",
32-
},
33-
{
34-
type: "object",
35-
properties: {
36-
void: {
37-
enum: ["never", "always", "ignore"],
38-
},
39-
normal: {
40-
enum: ["never", "always", "ignore"],
41-
},
42-
component: {
43-
enum: ["never", "always", "ignore"],
30+
oneOf: [
31+
{
32+
properties: {
33+
void: {
34+
enum: ["never", "always", "ignore"],
35+
},
36+
normal: {
37+
enum: ["never", "always", "ignore"],
38+
},
39+
component: {
40+
enum: ["never", "always", "ignore"],
41+
},
42+
svelte: {
43+
enum: ["never", "always", "ignore"],
44+
},
45+
},
46+
additionalProperties: false,
4447
},
45-
svelte: {
46-
enum: ["never", "always", "ignore"],
47-
},
48-
},
49-
additionalProperties: false,
50-
optional: true,
48+
{
49+
enum: ["all", "html", "none"],
50+
}
51+
],
5152
},
5253
],
5354
},
@@ -59,30 +60,33 @@ export default createRule("html-self-closing", {
5960
svelte: "always",
6061
}
6162

62-
switch (ctx.options?.[0] ?? "") {
63-
case "none":
64-
options = {
65-
void: "never",
66-
normal: "never",
67-
component: "never",
68-
svelte: "never",
69-
}
70-
break
71-
case "html":
72-
options = {
73-
void: "always",
74-
normal: "never",
75-
component: "never",
76-
svelte: "always",
77-
}
78-
break
79-
default:
80-
break
81-
}
82-
83-
options = {
84-
...options,
85-
...ctx.options?.[1],
63+
if (typeof ctx.options?.[0] === 'object') {
64+
options = {
65+
...options,
66+
...AST.options?.[0] ?? {}
67+
}
68+
} else {
69+
70+
switch (ctx.options?.[0] ?? "") {
71+
case "none":
72+
options = {
73+
void: "never",
74+
normal: "never",
75+
component: "never",
76+
svelte: "never",
77+
}
78+
break
79+
case "html":
80+
options = {
81+
void: "always",
82+
normal: "never",
83+
component: "never",
84+
svelte: "always",
85+
}
86+
break
87+
default:
88+
break
89+
}
8690
}
8791

8892
/**

tests/fixtures/rules/html-self-closing/invalid/component-never/_config.json

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{
22
"options": [
3-
"all",
43
{
54
"component": "never"
65
}

tests/fixtures/rules/html-self-closing/invalid/normal-ignore/_config.json

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{
22
"options": [
3-
"all",
43
{
54
"normal": "ignore"
65
}

tests/fixtures/rules/html-self-closing/invalid/normal-never/_config.json

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{
22
"options": [
3-
"all",
43
{
54
"normal": "never"
65
}

tests/fixtures/rules/html-self-closing/invalid/svelte-never/_config.json

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{
22
"options": [
3-
"all",
43
{
54
"svelte": "never"
65
}

tests/fixtures/rules/html-self-closing/invalid/void-never/_config.json

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{
22
"options": [
3-
"all",
43
{
54
"void": "never"
65
}

0 commit comments

Comments
 (0)