Skip to content

Commit c59fc0c

Browse files
committed
Refactor to use new rule format
1 parent 4b539a4 commit c59fc0c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+814
-589
lines changed

rules/no-ajax-events.js

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,28 +15,33 @@ const disallowedEvents = {
1515
const MemberExpression = 'MemberExpression'
1616
const Literal = 'Literal'
1717

18-
module.exports = function(context) {
19-
return {
20-
CallExpression: function(node) {
21-
if (
22-
node.callee.type === MemberExpression &&
23-
node.callee.property.name === methodName &&
24-
node.arguments.length >= 1
25-
) {
26-
const arg = node.arguments[0]
18+
module.exports = {
19+
meta: {
20+
docs: {},
21+
schema: []
22+
},
23+
24+
create: function(context) {
25+
return {
26+
CallExpression: function(node) {
2727
if (
28-
arg.type === Literal &&
29-
arg.value in disallowedEvents &&
30-
utils.isjQuery(node)
28+
node.callee.type === MemberExpression &&
29+
node.callee.property.name === methodName &&
30+
node.arguments.length >= 1
3131
) {
32-
context.report({
33-
node: node,
34-
message: `Prefer remoteForm to ${arg.value}`
35-
})
32+
const arg = node.arguments[0]
33+
if (
34+
arg.type === Literal &&
35+
arg.value in disallowedEvents &&
36+
utils.isjQuery(node)
37+
) {
38+
context.report({
39+
node: node,
40+
message: `Prefer remoteForm to ${arg.value}`
41+
})
42+
}
3643
}
3744
}
3845
}
3946
}
4047
}
41-
42-
module.exports.schema = []

rules/no-ajax.js

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,30 @@
11
'use strict'
22

3-
module.exports = function(context) {
4-
return {
5-
CallExpression: function(node) {
6-
if (node.callee.type !== 'MemberExpression') return
7-
if (node.callee.object.name !== '$') return
3+
module.exports = {
4+
meta: {
5+
docs: {},
6+
schema: []
7+
},
88

9-
const name = node.callee.property.name
10-
switch (name) {
11-
case 'ajax':
12-
case 'get':
13-
case 'getJSON':
14-
case 'getScript':
15-
case 'post':
16-
context.report({
17-
node: node,
18-
message: 'Prefer fetch to $.' + name
19-
})
9+
create: function(context) {
10+
return {
11+
CallExpression: function(node) {
12+
if (node.callee.type !== 'MemberExpression') return
13+
if (node.callee.object.name !== '$') return
14+
15+
const name = node.callee.property.name
16+
switch (name) {
17+
case 'ajax':
18+
case 'get':
19+
case 'getJSON':
20+
case 'getScript':
21+
case 'post':
22+
context.report({
23+
node: node,
24+
message: 'Prefer fetch to $.' + name
25+
})
26+
}
2027
}
2128
}
2229
}
2330
}
24-
25-
module.exports.schema = []

rules/no-animate.js

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,25 @@
22

33
const utils = require('./utils.js')
44

5-
module.exports = function(context) {
6-
return {
7-
CallExpression: function(node) {
8-
if (node.callee.type !== 'MemberExpression') return
9-
if (node.callee.property.name !== 'animate') return
5+
module.exports = {
6+
meta: {
7+
docs: {},
8+
schema: []
9+
},
1010

11-
if (utils.isjQuery(node)) {
12-
context.report({
13-
node: node,
14-
message: '$.animate is not allowed'
15-
})
11+
create: function(context) {
12+
return {
13+
CallExpression: function(node) {
14+
if (node.callee.type !== 'MemberExpression') return
15+
if (node.callee.property.name !== 'animate') return
16+
17+
if (utils.isjQuery(node)) {
18+
context.report({
19+
node: node,
20+
message: '$.animate is not allowed'
21+
})
22+
}
1623
}
1724
}
1825
}
1926
}
20-
21-
module.exports.schema = []

rules/no-attr.js

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,26 @@
22

33
const utils = require('./utils.js')
44

5-
module.exports = function(context) {
6-
return {
7-
CallExpression: function(node) {
8-
if (node.callee.type !== 'MemberExpression') return
9-
if (node.callee.property.name !== 'attr') return
5+
module.exports = {
6+
meta: {
7+
docs: {},
8+
schema: []
9+
},
1010

11-
if (utils.isjQuery(node)) {
12-
const getOrSet = node.arguments.length === 2 ? 'set' : 'get'
13-
context.report({
14-
node: node,
15-
message: `Prefer ${getOrSet}Attribute to $.attr`
16-
})
11+
create: function(context) {
12+
return {
13+
CallExpression: function(node) {
14+
if (node.callee.type !== 'MemberExpression') return
15+
if (node.callee.property.name !== 'attr') return
16+
17+
if (utils.isjQuery(node)) {
18+
const getOrSet = node.arguments.length === 2 ? 'set' : 'get'
19+
context.report({
20+
node: node,
21+
message: `Prefer ${getOrSet}Attribute to $.attr`
22+
})
23+
}
1724
}
1825
}
1926
}
2027
}
21-
22-
module.exports.schema = []

rules/no-bind.js

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,25 @@
22

33
const utils = require('./utils.js')
44

5-
module.exports = function(context) {
6-
return {
7-
CallExpression: function(node) {
8-
if (node.callee.type !== 'MemberExpression') return
9-
if (node.callee.property.name !== 'bind') return
5+
module.exports = {
6+
meta: {
7+
docs: {},
8+
schema: []
9+
},
1010

11-
if (utils.isjQuery(node)) {
12-
context.report({
13-
node: node,
14-
message: 'Prefer addEventListener to $.bind'
15-
})
11+
create: function(context) {
12+
return {
13+
CallExpression: function(node) {
14+
if (node.callee.type !== 'MemberExpression') return
15+
if (node.callee.property.name !== 'bind') return
16+
17+
if (utils.isjQuery(node)) {
18+
context.report({
19+
node: node,
20+
message: 'Prefer addEventListener to $.bind'
21+
})
22+
}
1623
}
1724
}
1825
}
1926
}
20-
21-
module.exports.schema = []

rules/no-class.js

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,27 @@
22

33
const utils = require('./utils.js')
44

5-
module.exports = function(context) {
6-
const forbidden = ['addClass', 'hasClass', 'removeClass', 'toggleClass']
5+
module.exports = {
6+
meta: {
7+
docs: {},
8+
schema: []
9+
},
710

8-
return {
9-
CallExpression: function(node) {
10-
if (node.callee.type !== 'MemberExpression') return
11-
if (forbidden.indexOf(node.callee.property.name) === -1) return
11+
create: function(context) {
12+
const forbidden = ['addClass', 'hasClass', 'removeClass', 'toggleClass']
1213

13-
if (utils.isjQuery(node)) {
14-
context.report({
15-
node: node,
16-
message: 'Prefer classList to $.' + node.callee.property.name
17-
})
14+
return {
15+
CallExpression: function(node) {
16+
if (node.callee.type !== 'MemberExpression') return
17+
if (forbidden.indexOf(node.callee.property.name) === -1) return
18+
19+
if (utils.isjQuery(node)) {
20+
context.report({
21+
node: node,
22+
message: 'Prefer classList to $.' + node.callee.property.name
23+
})
24+
}
1825
}
1926
}
2027
}
2128
}
22-
23-
module.exports.schema = []

rules/no-clone.js

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,25 @@
22

33
const utils = require('./utils.js')
44

5-
module.exports = function(context) {
6-
return {
7-
CallExpression: function(node) {
8-
if (node.callee.type !== 'MemberExpression') return
9-
if (node.callee.property.name !== 'clone') return
5+
module.exports = {
6+
meta: {
7+
docs: {},
8+
schema: []
9+
},
1010

11-
if (utils.isjQuery(node)) {
12-
context.report({
13-
node: node,
14-
message: 'Prefer cloneNode to $.clone'
15-
})
11+
create: function(context) {
12+
return {
13+
CallExpression: function(node) {
14+
if (node.callee.type !== 'MemberExpression') return
15+
if (node.callee.property.name !== 'clone') return
16+
17+
if (utils.isjQuery(node)) {
18+
context.report({
19+
node: node,
20+
message: 'Prefer cloneNode to $.clone'
21+
})
22+
}
1623
}
1724
}
1825
}
1926
}
20-
21-
module.exports.schema = []

rules/no-closest.js

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,25 @@
22

33
const utils = require('./utils.js')
44

5-
module.exports = function(context) {
6-
return {
7-
CallExpression: function(node) {
8-
if (node.callee.type !== 'MemberExpression') return
9-
if (node.callee.property.name !== 'closest') return
5+
module.exports = {
6+
meta: {
7+
docs: {},
8+
schema: []
9+
},
1010

11-
if (utils.isjQuery(node)) {
12-
context.report({
13-
node: node,
14-
message: 'Prefer closest to $.closest'
15-
})
11+
create: function(context) {
12+
return {
13+
CallExpression: function(node) {
14+
if (node.callee.type !== 'MemberExpression') return
15+
if (node.callee.property.name !== 'closest') return
16+
17+
if (utils.isjQuery(node)) {
18+
context.report({
19+
node: node,
20+
message: 'Prefer closest to $.closest'
21+
})
22+
}
1623
}
1724
}
1825
}
1926
}
20-
21-
module.exports.schema = []

rules/no-css.js

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,25 @@
22

33
const utils = require('./utils.js')
44

5-
module.exports = function(context) {
6-
return {
7-
CallExpression: function(node) {
8-
if (node.callee.type !== 'MemberExpression') return
9-
if (node.callee.property.name !== 'css') return
5+
module.exports = {
6+
meta: {
7+
docs: {},
8+
schema: []
9+
},
1010

11-
if (utils.isjQuery(node)) {
12-
context.report({
13-
node: node,
14-
message: 'Prefer getComputedStyle to $.css'
15-
})
11+
create: function(context) {
12+
return {
13+
CallExpression: function(node) {
14+
if (node.callee.type !== 'MemberExpression') return
15+
if (node.callee.property.name !== 'css') return
16+
17+
if (utils.isjQuery(node)) {
18+
context.report({
19+
node: node,
20+
message: 'Prefer getComputedStyle to $.css'
21+
})
22+
}
1623
}
1724
}
1825
}
1926
}
20-
21-
module.exports.schema = []

0 commit comments

Comments
 (0)