Skip to content

Commit e1c075b

Browse files
committed
refactor
1 parent f340ead commit e1c075b

File tree

1 file changed

+32
-18
lines changed

1 file changed

+32
-18
lines changed

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

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
5074
module.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

Comments
 (0)