Skip to content

Commit fb75b54

Browse files
committed
refactor
1 parent e1c075b commit fb75b54

File tree

2 files changed

+28
-30
lines changed

2 files changed

+28
-30
lines changed

lib/rules/no-reserved-component-names.js

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,6 @@ 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-
5037
/**
5138
* @param {Expression | SpreadElement} node
5239
* @returns {node is (Literal | TemplateLiteral)}
@@ -114,6 +101,13 @@ module.exports = {
114101
options.disallowVue3BuiltInComponents === true
115102
const htmlElementCaseSensitive = options.htmlElementCaseSensitive === true
116103

104+
const RESERVED_NAMES_IN_HTML = new Set(htmlElements)
105+
const RESERVED_NAMES_IN_OTHERS = new Set([
106+
...deprecatedHtmlElements,
107+
...kebabCaseElements,
108+
...svgElements
109+
])
110+
117111
if (!htmlElementCaseSensitive) {
118112
addAll(RESERVED_NAMES_IN_HTML, htmlElements.map(casing.capitalize))
119113
addAll(RESERVED_NAMES_IN_OTHERS, [
@@ -130,6 +124,17 @@ module.exports = {
130124
...RESERVED_NAMES_IN_OTHERS
131125
])
132126

127+
/**
128+
* @param {string} name
129+
* @returns {string}
130+
*/
131+
function getMessageId(name) {
132+
if (RESERVED_NAMES_IN_HTML.has(name)) return 'reservedInHtml'
133+
if (RESERVED_NAMES_IN_VUE.has(name)) return 'reservedInVue'
134+
if (RESERVED_NAMES_IN_VUE3.has(name)) return 'reservedInVue3'
135+
return 'reserved'
136+
}
137+
133138
/**
134139
* @param {Literal | TemplateLiteral} node
135140
*/
@@ -146,17 +151,6 @@ module.exports = {
146151
}
147152
}
148153

149-
/**
150-
* @param {string} name
151-
* @returns {string}
152-
*/
153-
function getMessageId(name) {
154-
if (RESERVED_NAMES_IN_HTML.has(name)) return 'reservedInHtml'
155-
if (RESERVED_NAMES_IN_VUE.has(name)) return 'reservedInVue'
156-
if (RESERVED_NAMES_IN_VUE3.has(name)) return 'reservedInVue3'
157-
return 'reserved'
158-
}
159-
160154
/**
161155
* @param {ESNode} node
162156
* @param {string} name

tests/lib/rules/no-reserved-component-names.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -410,12 +410,16 @@ const invalidElements = [
410410
'xmp',
411411
'Xmp'
412412
]
413-
const invalidLowerCaseElements = invalidElements.filter(
414-
(element) => element === element.toLowerCase()
415-
)
416-
const invalidUpperCaseElements = invalidElements.filter(
417-
(element) => element === element.toUpperCase()
418-
)
413+
const invalidLowerCaseElements = []
414+
const invalidUpperCaseElements = []
415+
416+
for (const element of invalidElements) {
417+
if (element[0] === element[0].toLowerCase()) {
418+
invalidLowerCaseElements.push(element)
419+
} else {
420+
invalidUpperCaseElements.push(element)
421+
}
422+
}
419423

420424
const vue2BuiltInComponents = [
421425
'component',

0 commit comments

Comments
 (0)