Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb5a8260

Browse files
authored
Improveno-invalid-meta internal rule (#2647)
1 parent9453949 commitb5a8260

9 files changed

+26
-49
lines changed

‎eslint-internal-rules/no-invalid-meta.js‎

Lines changed: 22 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -23,38 +23,6 @@ function getPropertyFromObject(propertyName, node) {
2323
returnnull
2424
}
2525

26-
/**
27-
* Extracts the `meta` property from the ObjectExpression that all rules export.
28-
*
29-
*@param {ASTNode} exportsNode ObjectExpression node that the rule exports.
30-
*@returns {ASTNode} The `meta` Property node or null if not found.
31-
*/
32-
functiongetMetaPropertyFromExportsNode(exportsNode){
33-
returngetPropertyFromObject('meta',exportsNode)
34-
}
35-
36-
/**
37-
* Whether this `meta` ObjectExpression has a `docs` property defined or not.
38-
*
39-
*@param {ASTNode} metaPropertyNode The `meta` ObjectExpression for this rule.
40-
*@returns {boolean} `true` if a `docs` property exists.
41-
*/
42-
functionhasMetaDocs(metaPropertyNode){
43-
returnBoolean(getPropertyFromObject('docs',metaPropertyNode.value))
44-
}
45-
46-
/**
47-
* Whether this `meta` ObjectExpression has a `docs.category` property defined or not.
48-
*
49-
*@param {ASTNode} metaPropertyNode The `meta` ObjectExpression for this rule.
50-
*@returns {boolean} `true` if a `docs.category` property exists.
51-
*/
52-
functionhasMetaDocsCategories(metaPropertyNode){
53-
constmetaDocs=getPropertyFromObject('docs',metaPropertyNode.value)
54-
55-
returnmetaDocs&&getPropertyFromObject('categories',metaDocs.value)
56-
}
57-
5826
/**
5927
* Checks the validity of the meta definition of this rule and reports any errors found.
6028
*
@@ -64,8 +32,7 @@ function hasMetaDocsCategories(metaPropertyNode) {
6432
*@returns {void}
6533
*/
6634
functioncheckMetaValidity(context,exportsNode){
67-
constmetaProperty=getMetaPropertyFromExportsNode(exportsNode)
68-
35+
constmetaProperty=getPropertyFromObject('meta',exportsNode)
6936
if(!metaProperty){
7037
context.report({
7138
node:exportsNode,
@@ -74,21 +41,35 @@ function checkMetaValidity(context, exportsNode) {
7441
return
7542
}
7643

77-
if(!hasMetaDocs(metaProperty)){
44+
constmetaDocs=getPropertyFromObject('docs',metaProperty.value)
45+
if(!metaDocs){
7846
context.report({
79-
node:'metaDocs',
47+
node:metaProperty,
8048
messageId:'missingMetaDocs'
8149
})
8250
return
8351
}
8452

85-
if(!hasMetaDocsCategories(metaProperty)){
53+
constmetaDocsCategories=getPropertyFromObject('categories',metaDocs.value)
54+
if(!metaDocsCategories){
8655
context.report({
87-
node:metaProperty,
56+
node:metaDocs,
8857
messageId:'missingMetaDocsCategories'
8958
})
9059
return
9160
}
61+
62+
constmetaDocsRecommended=getPropertyFromObject(
63+
'recommended',
64+
metaDocs.value
65+
)
66+
if(metaDocsRecommended){
67+
context.report({
68+
node:metaDocsRecommended,
69+
messageId:'invalidMetaDocsRecommended'
70+
})
71+
return
72+
}
9273
}
9374

9475
module.exports={
@@ -103,7 +84,9 @@ module.exports = {
10384
missingMeta:'Rule is missing a meta property.',
10485
missingMetaDocs:'Rule is missing a meta.docs property.',
10586
missingMetaDocsCategories:
106-
'Rule is missing a meta.docs.categories property.'
87+
'Rule is missing a meta.docs.categories property.',
88+
invalidMetaDocsRecommended:
89+
'Rule should not have a meta.docs.recommended property.'
10790
}
10891
},
10992

‎lib/rules/no-duplicate-attr-inheritance.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ module.exports = {
4040
description:
4141
'enforce `inheritAttrs` to be set to `false` when using `v-bind="$attrs"`',
4242
categories:undefined,
43-
recommended:false,
4443
url:'https://eslint.vuejs.org/rules/no-duplicate-attr-inheritance.html'
4544
},
4645
fixable:null,

‎lib/rules/no-potential-component-option-typo.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ module.exports = {
1212
docs:{
1313
description:'disallow a potential typo in your component property',
1414
categories:undefined,
15-
recommended:false,
1615
url:'https://eslint.vuejs.org/rules/no-potential-component-option-typo.html'
1716
},
1817
fixable:null,

‎lib/rules/no-ref-object-destructure.js‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
constbaseRule=require('./no-ref-object-reactivity-loss')
77

88
module.exports={
9-
// eslint-disable-next-line eslint-plugin/require-meta-schema, eslint-plugin/prefer-message-ids,internal/no-invalid-meta,eslint-plugin/require-meta-type -- inherit schema from base rule
9+
// eslint-disable-next-line eslint-plugin/require-meta-schema, eslint-plugin/prefer-message-ids, eslint-plugin/require-meta-type -- inherit schema from base rule
1010
meta:{
1111
...baseRule.meta,
12-
// eslint-disable-next-line eslint-plugin/require-meta-docs-description, internal/no-invalid-meta-docs-categories, eslint-plugin/meta-property-ordering
12+
// eslint-disable-next-line eslint-plugin/require-meta-docs-description, internal/no-invalid-meta, internal/no-invalid-meta-docs-categories, eslint-plugin/meta-property-ordering
1313
docs:{
1414
...baseRule.meta.docs,
1515
url:'https://eslint.vuejs.org/rules/no-ref-object-destructure.html'

‎lib/rules/no-setup-props-destructure.js‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
constbaseRule=require('./no-setup-props-reactivity-loss')
77

88
module.exports={
9-
// eslint-disable-next-line eslint-plugin/require-meta-schema, eslint-plugin/prefer-message-ids,internal/no-invalid-meta,eslint-plugin/require-meta-type -- inherit schema from base rule
9+
// eslint-disable-next-line eslint-plugin/require-meta-schema, eslint-plugin/prefer-message-ids, eslint-plugin/require-meta-type -- inherit schema from base rule
1010
meta:{
1111
...baseRule.meta,
12-
// eslint-disable-next-line eslint-plugin/require-meta-docs-description, internal/no-invalid-meta-docs-categories, eslint-plugin/meta-property-ordering
12+
// eslint-disable-next-line eslint-plugin/require-meta-docs-description, internal/no-invalid-meta, internal/no-invalid-meta-docs-categories, eslint-plugin/meta-property-ordering
1313
docs:{
1414
...baseRule.meta.docs,
1515
url:'https://eslint.vuejs.org/rules/no-setup-props-destructure.html'

‎lib/rules/require-typed-object-prop.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,6 @@ module.exports = {
116116
docs:{
117117
description:'enforce adding type declarations to object props',
118118
categories:undefined,
119-
recommended:false,
120119
url:'https://eslint.vuejs.org/rules/require-typed-object-prop.html'
121120
},
122121
fixable:null,

‎lib/rules/sort-keys.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ module.exports = {
7171
description:
7272
'enforce sort-keys in a manner that is compatible with order-in-components',
7373
categories:null,
74-
recommended:false,
7574
url:'https://eslint.vuejs.org/rules/sort-keys.html'
7675
},
7776
fixable:null,

‎lib/rules/v-for-delimiter-style.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ module.exports = {
1414
docs:{
1515
description:"enforce `v-for` directive's delimiter style",
1616
categories:undefined,
17-
recommended:false,
1817
url:'https://eslint.vuejs.org/rules/v-for-delimiter-style.html'
1918
},
2019
fixable:'code',

‎lib/rules/v-if-else-key.js‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@ module.exports = {
127127
description:
128128
'require key attribute for conditionally rendered repeated components',
129129
categories:null,
130-
recommended:false,
131130
url:'https://eslint.vuejs.org/rules/v-if-else-key.html'
132131
},
133132
// eslint-disable-next-line eslint-plugin/require-meta-fixable -- fixer is not recognized

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp