@@ -34,19 +34,6 @@ function isLowercase(word) {
34
34
return / ^ [ a - z ] * $ / . test ( word )
35
35
}
36
36
37
- const RESERVED_NAMES_IN_HTML = new Set ( [
38
- ...htmlElements ,
39
- ...htmlElements . map ( casing . capitalize )
40
- ] )
41
- const RESERVED_NAMES_IN_OTHERS = new Set ( [
42
- ...deprecatedHtmlElements ,
43
- ...deprecatedHtmlElements . map ( casing . capitalize ) ,
44
- ...kebabCaseElements ,
45
- ...kebabCaseElements . map ( casing . pascalCase ) ,
46
- ...svgElements ,
47
- ...svgElements . filter ( isLowercase ) . map ( casing . capitalize )
48
- ] )
49
-
50
37
/**
51
38
* @param {Expression | SpreadElement } node
52
39
* @returns {node is (Literal | TemplateLiteral) }
@@ -60,17 +47,6 @@ function canVerify(node) {
60
47
)
61
48
}
62
49
63
- /**
64
- * @param {string } name
65
- * @returns {string }
66
- */
67
- function getMessageId ( name ) {
68
- if ( RESERVED_NAMES_IN_HTML . has ( name ) ) return 'reservedInHtml'
69
- if ( RESERVED_NAMES_IN_VUE . has ( name ) ) return 'reservedInVue'
70
- if ( RESERVED_NAMES_IN_VUE3 . has ( name ) ) return 'reservedInVue3'
71
- return 'reserved'
72
- }
73
-
74
50
module . exports = {
75
51
meta : {
76
52
type : 'suggestion' ,
@@ -90,6 +66,9 @@ module.exports = {
90
66
} ,
91
67
disallowVue3BuiltInComponents : {
92
68
type : 'boolean'
69
+ } ,
70
+ htmlElementCaseSensitive : {
71
+ type : 'boolean'
93
72
}
94
73
} ,
95
74
additionalProperties : false
@@ -109,6 +88,26 @@ module.exports = {
109
88
options . disallowVueBuiltInComponents === true
110
89
const disallowVue3BuiltInComponents =
111
90
options . disallowVue3BuiltInComponents === true
91
+ const htmlElementCaseSensitive = options . htmlElementCaseSensitive === true
92
+
93
+ const RESERVED_NAMES_IN_HTML = new Set ( [
94
+ ...htmlElements ,
95
+ ...( htmlElementCaseSensitive ? [ ] : htmlElements . map ( casing . capitalize ) )
96
+ ] )
97
+ const RESERVED_NAMES_IN_OTHERS = new Set ( [
98
+ ...deprecatedHtmlElements ,
99
+ ...( htmlElementCaseSensitive
100
+ ? [ ]
101
+ : deprecatedHtmlElements . map ( casing . capitalize ) ) ,
102
+ ...kebabCaseElements ,
103
+ ...( htmlElementCaseSensitive
104
+ ? [ ]
105
+ : kebabCaseElements . map ( casing . pascalCase ) ) ,
106
+ ...svgElements ,
107
+ ...( htmlElementCaseSensitive
108
+ ? [ ]
109
+ : svgElements . filter ( isLowercase ) . map ( casing . capitalize ) )
110
+ ] )
112
111
113
112
const reservedNames = new Set ( [
114
113
...RESERVED_NAMES_IN_HTML ,
@@ -133,6 +132,17 @@ module.exports = {
133
132
}
134
133
}
135
134
135
+ /**
136
+ * @param {string } name
137
+ * @returns {string }
138
+ */
139
+ function getMessageId ( name ) {
140
+ if ( RESERVED_NAMES_IN_HTML . has ( name ) ) return 'reservedInHtml'
141
+ if ( RESERVED_NAMES_IN_VUE . has ( name ) ) return 'reservedInVue'
142
+ if ( RESERVED_NAMES_IN_VUE3 . has ( name ) ) return 'reservedInVue3'
143
+ return 'reserved'
144
+ }
145
+
136
146
/**
137
147
* @param {ESNode } node
138
148
* @param {string } name
0 commit comments