@@ -34,6 +34,19 @@ function isLowercase(word) {
3434 return / ^ [ a - z ] * $ / . test ( word )
3535}
3636
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+
3750/**
3851 * @param {Expression | SpreadElement } node
3952 * @returns {node is (Literal | TemplateLiteral) }
@@ -47,6 +60,17 @@ function canVerify(node) {
4760 )
4861}
4962
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+
5074module . exports = {
5175 meta : {
5276 type : 'suggestion' ,
@@ -90,24 +114,14 @@ module.exports = {
90114 options . disallowVue3BuiltInComponents === true
91115 const htmlElementCaseSensitive = options . htmlElementCaseSensitive === true
92116
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+ }
111125
112126 const reservedNames = new Set ( [
113127 ...RESERVED_NAMES_IN_HTML ,
0 commit comments