Skip to content

Commit ae7a065

Browse files
committed
add no-when rule
1 parent e1aadcd commit ae7a065

File tree

4 files changed

+44
-0
lines changed

4 files changed

+44
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ Add `jquery` to the plugins section of your `.eslintrc` configuration file. You
6868
"jquery/no-trigger": 2,
6969
"jquery/no-trim": 2,
7070
"jquery/no-val": 2,
71+
"jquery/no-when": 2,
7172
"jquery/no-wrap": 2
7273
}
7374
}

index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ module.exports = {
4242
'no-trigger': require('./rules/no-trigger'),
4343
'no-trim': require('./rules/no-trim'),
4444
'no-val': require('./rules/no-val'),
45+
'no-when': require('./rules/no-when'),
4546
'no-wrap': require('./rules/no-wrap')
4647
},
4748
configs: {
@@ -87,6 +88,7 @@ module.exports = {
8788
"jquery/no-trigger": 2,
8889
"jquery/no-trim": 2,
8990
"jquery/no-val": 2,
91+
"jquery/no-when": 2,
9092
"jquery/no-wrap": 2
9193
}
9294
},

rules/no-when.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 !== 'when') return
9+
10+
context.report({
11+
node: node,
12+
message: 'Prefer Promise.all to $.when'
13+
})
14+
}
15+
}
16+
}
17+
18+
module.exports.schema = []

tests/no-when.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
'use strict';
2+
3+
const rule = require('../rules/no-when')
4+
const RuleTester = require('eslint').RuleTester
5+
6+
const error = 'Prefer Promise.all to $.when'
7+
8+
const ruleTester = new RuleTester()
9+
ruleTester.run('no-when', rule, {
10+
valid: [
11+
'When()',
12+
'new When()',
13+
'"test".when()',
14+
'"test".when',
15+
'$when()'
16+
],
17+
invalid: [
18+
{
19+
code: '$.when(a,b)',
20+
errors: [{message: error, type: 'CallExpression'}]
21+
}
22+
]
23+
})

0 commit comments

Comments
 (0)