Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 737cee6

Browse files
authored
Merge pull request github#122 from github/set-correct-meta-info-on-rules
Add info into the `meta` property of rules
2 parents 25c29a0 + bc687f5 commit 737cee6

17 files changed

+124
-32
lines changed

lib/rules/array-foreach.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
module.exports = {
22
meta: {
3-
docs: {},
3+
type: 'suggestion',
4+
docs: {
5+
description: 'enforce `for..of` loops over `Array.forEach`',
6+
url: require('../url')(module)
7+
},
48
schema: []
59
},
610

lib/rules/async-currenttarget.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
module.exports = {
22
meta: {
3-
docs: {},
3+
type: 'problem',
4+
docs: {
5+
description: 'disallow `event.currentTarget` calls inside of async functions',
6+
url: require('../url')(module)
7+
},
48
schema: []
59
},
610

lib/rules/async-preventdefault.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
module.exports = {
22
meta: {
3-
docs: {},
3+
type: 'problem',
4+
docs: {
5+
description: 'disallow `event.preventDefault` calls inside of async functions',
6+
url: require('../url')(module)
7+
},
48
schema: []
59
},
610

lib/rules/authenticity-token.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
module.exports = {
22
meta: {
3-
docs: {},
3+
type: 'problem',
4+
docs: {
5+
description: 'disallow usage of CSRF tokens in JavaScript',
6+
url: require('../url')(module)
7+
},
48
schema: []
59
},
610

lib/rules/get-attribute.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,13 @@ function isValidAttribute(name) {
1919

2020
module.exports = {
2121
meta: {
22-
fixable: 'code'
22+
type: 'problem',
23+
docs: {
24+
description: 'disallow wrong usage of attribute names',
25+
url: require('../url')(module)
26+
},
27+
fixable: 'code',
28+
schema: []
2329
},
2430
create(context) {
2531
return {

lib/rules/js-class-name.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
module.exports = {
22
meta: {
3-
docs: {},
3+
type: 'suggestion',
4+
docs: {
5+
description: 'enforce a naming convention for js- prefixed classes',
6+
url: require('../url')(module)
7+
},
48
schema: []
59
},
610

lib/rules/no-blur.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
module.exports = function (context) {
22
return {
3+
meta: {
4+
type: 'problem',
5+
docs: {
6+
description: 'disallow usage of `Element.prototype.blur()`',
7+
url: require('../url')(module)
8+
},
9+
schema: []
10+
},
311
CallExpression(node) {
412
if (node.callee.property && node.callee.property.name === 'blur') {
513
context.report(node, 'Do not use element.blur(), instead restore the focus of a previous element.')
614
}
715
}
816
}
917
}
10-
11-
module.exports.schema = []

lib/rules/no-d-none.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
module.exports = {
2+
meta: {
3+
type: 'problem',
4+
docs: {
5+
description: 'disallow usage the `d-none` CSS class',
6+
url: require('../url')(module)
7+
},
8+
schema: []
9+
},
210
create(context) {
311
return {
412
CallExpression(node) {

lib/rules/no-dataset.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
module.exports = {
22
meta: {
3-
docs: {},
3+
type: 'problem',
4+
docs: {
5+
description: 'enforce usage of `Element.prototype.getAttribute` instead of `Element.prototype.datalist`',
6+
url: require('../url')(module)
7+
},
48
schema: []
59
},
610

lib/rules/no-implicit-buggy-globals.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
module.exports = {
22
meta: {
3-
docs: {},
3+
type: 'problem',
4+
docs: {
5+
description: 'disallow implicit global variables',
6+
url: require('../url')(module)
7+
},
48
schema: []
59
},
610

lib/rules/no-innerText.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
module.exports = {
22
meta: {
3-
docs: {},
4-
fixable: 'code'
3+
type: 'problem',
4+
docs: {
5+
description: 'disallow `Element.prototype.innerText` in favor of `Element.prototype.textContent`',
6+
url: require('../url')(module)
7+
},
8+
fixable: 'code',
9+
schema: []
510
},
611

712
create(context) {

lib/rules/no-then.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
module.exports = {
22
meta: {
3-
docs: {}
3+
type: 'suggestion',
4+
docs: {
5+
description: 'enforce using `async/await` syntax over Promises',
6+
url: require('../url')(module)
7+
},
8+
schema: []
49
},
510

611
create(context) {

lib/rules/no-useless-passive.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,13 @@ const propIsPassiveTrue = prop => prop.key && prop.key.name === 'passive' && pro
44

55
module.exports = {
66
meta: {
7-
docs: {},
8-
fixable: 'code'
7+
type: 'suggestion',
8+
docs: {
9+
description: 'disallow marking a event handler as passive when it has no effect',
10+
url: require('../url')(module)
11+
},
12+
fixable: 'code',
13+
schema: []
914
},
1015

1116
create(context) {

lib/rules/prefer-observers.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,12 @@ const observerMap = {
44
}
55
module.exports = {
66
meta: {
7-
docs: {},
8-
fixable: 'code'
7+
type: 'suggestion',
8+
docs: {
9+
description: 'disallow poorly performing event listeners',
10+
url: require('../url')(module)
11+
},
12+
schema: []
913
},
1014

1115
create(context) {

lib/rules/require-passive-events.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ const propIsPassiveTrue = prop => prop.key && prop.key.name === 'passive' && pro
44

55
module.exports = {
66
meta: {
7-
docs: {}
7+
type: 'suggestion',
8+
docs: {
9+
description: 'enforce marking high frequency event handlers as passive',
10+
url: require('../url')(module)
11+
},
12+
schema: []
813
},
914

1015
create(context) {

lib/rules/unescaped-html-literal.js

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,35 @@
1-
module.exports = function (context) {
2-
const htmlOpenTag = /^<[a-zA-Z]/
3-
const message = 'Unescaped HTML literal. Use html`` tag template literal for secure escaping.'
1+
module.exports = {
2+
meta: {
3+
type: 'problem',
4+
docs: {
5+
description: 'disallow unesaped HTML literals',
6+
url: require('../url')(module)
7+
},
8+
schema: []
9+
},
410

5-
return {
6-
Literal(node) {
7-
if (!htmlOpenTag.test(node.value)) return
11+
create(context) {
12+
const htmlOpenTag = /^<[a-zA-Z]/
13+
const message = 'Unescaped HTML literal. Use html`` tag template literal for secure escaping.'
814

9-
context.report({
10-
node,
11-
message
12-
})
13-
},
14-
TemplateLiteral(node) {
15-
if (!htmlOpenTag.test(node.quasis[0].value.raw)) return
15+
return {
16+
Literal(node) {
17+
if (!htmlOpenTag.test(node.value)) return
1618

17-
if (!node.parent.tag || node.parent.tag.name !== 'html') {
1819
context.report({
1920
node,
2021
message
2122
})
23+
},
24+
TemplateLiteral(node) {
25+
if (!htmlOpenTag.test(node.quasis[0].value.raw)) return
26+
27+
if (!node.parent.tag || node.parent.tag.name !== 'html') {
28+
context.report({
29+
node,
30+
message
31+
})
32+
}
2233
}
2334
}
2435
}

lib/url.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
const {homepage, version} = require('../package.json')
2+
const path = require('path')
3+
module.exports = ({id}) => {
4+
const url = new URL(homepage)
5+
const rule = path.basename(id, '.js')
6+
url.hash = ''
7+
url.pathname += `/blob/v${version}/docs/rules/${rule}.md`
8+
return url.toString()
9+
}

0 commit comments

Comments
 (0)