Skip to content

Commit 571de78

Browse files
committed
Disallow removeData usage
1 parent 5f07121 commit 571de78

File tree

2 files changed

+24
-7
lines changed

2 files changed

+24
-7
lines changed

rules/no-data.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,16 @@ module.exports = function(context) {
66
return {
77
CallExpression: function(node) {
88
if (node.callee.type !== 'MemberExpression') return
9-
if (node.callee.property.name !== 'data') return
9+
if (!utils.isjQuery(node)) return
1010

11-
if (utils.isjQuery(node)) {
12-
context.report({
13-
node: node,
14-
message: 'Prefer WeakMap to $.data'
15-
})
11+
const name = node.callee.property.name
12+
switch (name) {
13+
case 'data':
14+
case 'removeData':
15+
context.report({
16+
node: node,
17+
message: 'Prefer WeakMap to $.' + name
18+
})
1619
}
1720
}
1821
}

tests/no-data.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,20 @@ const rule = require('../rules/no-data')
44
const RuleTester = require('eslint').RuleTester
55

66
const error = 'Prefer WeakMap to $.data'
7+
const removeError = 'Prefer WeakMap to $.removeData'
78

89
const ruleTester = new RuleTester()
910
ruleTester.run('no-data', rule, {
1011
valid: [
1112
'data()',
1213
'[].data()',
1314
'div.data()',
14-
'div.data'
15+
'div.data',
16+
17+
'removeData()',
18+
'[].removeData()',
19+
'div.removeData()',
20+
'div.removeData'
1521
],
1622
invalid: [
1723
{
@@ -29,6 +35,14 @@ ruleTester.run('no-data', rule, {
2935
{
3036
code: '$("div").append($("input").data())',
3137
errors: [{message: error, type: 'CallExpression'}]
38+
},
39+
{
40+
code: '$("div").removeData()',
41+
errors: [{message: removeError, type: 'CallExpression'}]
42+
},
43+
{
44+
code: '$div.removeData()',
45+
errors: [{message: removeError, type: 'CallExpression'}]
3246
}
3347
]
3448
})

0 commit comments

Comments
 (0)