File tree Expand file tree Collapse file tree 4 files changed +58
-0
lines changed Expand file tree Collapse file tree 4 files changed +58
-0
lines changed Original file line number Diff line number Diff line change @@ -59,6 +59,7 @@ Add `jquery` to the plugins section of your `.eslintrc` configuration file. You
59
59
"jquery/no-proxy" : 2 ,
60
60
"jquery/no-serialize" : 2 ,
61
61
"jquery/no-show" : 2 ,
62
+ "jquery/no-size" : 2 ,
62
63
"jquery/no-sizzle" : 2 ,
63
64
"jquery/no-slide" : 2 ,
64
65
"jquery/no-text" : 2 ,
Original file line number Diff line number Diff line change @@ -31,6 +31,7 @@ module.exports = {
31
31
'no-parse-html' : require ( './rules/no-parse-html' ) ,
32
32
'no-prop' : require ( './rules/no-prop' ) ,
33
33
'no-proxy' : require ( './rules/no-proxy' ) ,
34
+ 'no-size' : require ( './rules/no-size' ) ,
34
35
'no-sizzle' : require ( './rules/no-sizzle' ) ,
35
36
'no-serialize' : require ( './rules/no-serialize' ) ,
36
37
'no-show' : require ( './rules/no-show' ) ,
@@ -76,6 +77,7 @@ module.exports = {
76
77
"jquery/no-proxy" : 2 ,
77
78
"jquery/no-serialize" : 2 ,
78
79
"jquery/no-show" : 2 ,
80
+ "jquery/no-size" : 2 ,
79
81
"jquery/no-sizzle" : 2 ,
80
82
"jquery/no-slide" : 2 ,
81
83
"jquery/no-text" : 2 ,
Original file line number Diff line number Diff line change
1
+ 'use strict' ;
2
+
3
+ const utils = require ( './utils.js' )
4
+
5
+ module . exports = function ( context ) {
6
+ return {
7
+ CallExpression : function ( node ) {
8
+ if ( node . callee . type !== 'MemberExpression' ) return
9
+ if ( node . callee . property . name !== 'size' ) return
10
+
11
+ if ( utils . isjQuery ( node ) ) {
12
+ context . report ( {
13
+ node : node ,
14
+ message : 'Prefer length to $.size'
15
+ } )
16
+ }
17
+ }
18
+ }
19
+ }
20
+
21
+ module . exports . schema = [ ]
Original file line number Diff line number Diff line change
1
+ 'use strict' ;
2
+
3
+ const rule = require ( '../rules/no-size' )
4
+ const RuleTester = require ( 'eslint' ) . RuleTester
5
+
6
+ const error = 'Prefer length to $.size'
7
+
8
+ const ruleTester = new RuleTester ( )
9
+ ruleTester . run ( 'no-size' , rule , {
10
+ valid : [
11
+ 'size()' ,
12
+ '[].size()' ,
13
+ 'div.size()' ,
14
+ 'div.size'
15
+ ] ,
16
+ invalid : [
17
+ {
18
+ code : '$("div").size()' ,
19
+ errors : [ { message : error , type : 'CallExpression' } ]
20
+ } ,
21
+ {
22
+ code : '$div.size()' ,
23
+ errors : [ { message : error , type : 'CallExpression' } ]
24
+ } ,
25
+ {
26
+ code : '$("div").first().size()' ,
27
+ errors : [ { message : error , type : 'CallExpression' } ]
28
+ } ,
29
+ {
30
+ code : '$("div").append($("input").size())' ,
31
+ errors : [ { message : error , type : 'CallExpression' } ]
32
+ }
33
+ ]
34
+ } )
You can’t perform that action at this time.
0 commit comments