Skip to content

Commit dd38592

Browse files
committed
Merge branch 'no-is-array'
2 parents 961ea62 + a7a634e commit dd38592

File tree

4 files changed

+38
-0
lines changed

4 files changed

+38
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ Add `jquery` to the plugins section of your `.eslintrc` configuration file. You
5050
"jquery/no-hide": 2,
5151
"jquery/no-html": 2,
5252
"jquery/no-in-array": 2,
53+
"jquery/no-is-array": 2,
5354
"jquery/no-is": 2,
5455
"jquery/no-load": 2,
5556
"jquery/no-map": 2,

index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ module.exports = {
2424
'no-hide': require('./rules/no-hide'),
2525
'no-html': require('./rules/no-html'),
2626
'no-in-array': require('./rules/no-in-array'),
27+
'no-is-array': require('./rules/no-is-array'),
2728
'no-is': require('./rules/no-is'),
2829
'no-load': require('./rules/no-load'),
2930
'no-map': require('./rules/no-map'),
@@ -74,6 +75,7 @@ module.exports = {
7475
'jquery/no-hide': 2,
7576
'jquery/no-html': 2,
7677
'jquery/no-in-array': 2,
78+
'jquery/no-is-array': 2,
7779
'jquery/no-is': 2,
7880
'jquery/no-load': 2,
7981
'jquery/no-map': 2,

rules/no-is-array.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
'use strict'
2+
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
8+
if (node.callee.property.name !== 'isArray') return
9+
10+
context.report({
11+
node: node,
12+
message: 'Prefer Array#isArray to $.isArray'
13+
})
14+
}
15+
}
16+
}
17+
18+
module.exports.schema = []

tests/no-is-array.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
'use strict'
2+
3+
const rule = require('../rules/no-is-array')
4+
const RuleTester = require('eslint').RuleTester
5+
6+
const error = 'Prefer Array#isArray to $.isArray'
7+
8+
const ruleTester = new RuleTester()
9+
ruleTester.run('no-in-array', rule, {
10+
valid: ['isArray()', '"test".isArray()', '"test".isArray'],
11+
invalid: [
12+
{
13+
code: '$.isArray()',
14+
errors: [{message: error, type: 'CallExpression'}]
15+
}
16+
]
17+
})

0 commit comments

Comments
 (0)