@@ -34,6 +34,19 @@ 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
+
37
50
/**
38
51
* @param {Expression | SpreadElement } node
39
52
* @returns {node is (Literal | TemplateLiteral) }
@@ -47,6 +60,17 @@ function canVerify(node) {
47
60
)
48
61
}
49
62
63
+ /**
64
+ * @template T
65
+ * @param {Set<T> } set
66
+ * @param {Iterable<T> } iterable
67
+ */
68
+ function addAll ( set , iterable ) {
69
+ for ( const element of iterable ) {
70
+ set . add ( element )
71
+ }
72
+ }
73
+
50
74
module . exports = {
51
75
meta : {
52
76
type : 'suggestion' ,
@@ -90,24 +114,14 @@ module.exports = {
90
114
options . disallowVue3BuiltInComponents === true
91
115
const htmlElementCaseSensitive = options . htmlElementCaseSensitive === true
92
116
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
- ] )
117
+ if ( ! htmlElementCaseSensitive ) {
118
+ addAll ( RESERVED_NAMES_IN_HTML , htmlElements . map ( casing . capitalize ) )
119
+ addAll ( RESERVED_NAMES_IN_OTHERS , [
120
+ ...deprecatedHtmlElements . map ( casing . capitalize ) ,
121
+ ...kebabCaseElements . map ( casing . pascalCase ) ,
122
+ ...svgElements . filter ( isLowercase ) . map ( casing . capitalize )
123
+ ] )
124
+ }
111
125
112
126
const reservedNames = new Set ( [
113
127
...RESERVED_NAMES_IN_HTML ,
0 commit comments