@@ -20,46 +20,57 @@ function isDependencyArrayHook(node) {
20
20
21
21
/** @type {import('eslint').Rule.RuleModule } */
22
22
module . exports = {
23
- meta : {
24
- type : 'suggestion' ,
25
- fixable : 'code' ,
26
- docs : {
27
- category : 'Stylistic Issues' ,
28
- description : 'Sort React dependency arrays' ,
29
- recommended : false ,
30
- url : 'https://github.com/stevensacks/eslint-plugin-sort-react-dependency-arrays'
31
- } ,
32
- schema : [ ] // no options
33
- } ,
34
- create : function ( context ) {
23
+ create ( context ) {
35
24
return {
36
25
CallExpression ( node ) {
37
26
if ( isDependencyArrayHook ( node . callee ) ) {
38
27
const dependencies = node . arguments [ 1 ] ;
39
28
40
- if ( dependencies && dependencies . type === 'ArrayExpression' && dependencies . elements . length > 1 ) {
29
+ if (
30
+ dependencies &&
31
+ dependencies . type === 'ArrayExpression' &&
32
+ dependencies . elements . length > 1
33
+ ) {
41
34
const currentDependencies = [ ...dependencies . elements ] ;
42
- const sortedDependencies = [ ...dependencies . elements ] . sort ( ( a , b ) => ( a . name < b . name ? - 1 : 1 ) ) ;
43
- const currentNames = currentDependencies . map ( item => item . name ) ;
44
- const sortedNames = sortedDependencies . map ( item => item . name ) ;
35
+ const currentNames = currentDependencies . map (
36
+ ( item ) => item . name
37
+ ) ;
38
+
39
+ const sortedDependencies = [
40
+ ...dependencies . elements ,
41
+ ] . sort ( ( a , b ) => ( a . name < b . name ? - 1 : 1 ) ) ;
42
+ const sortedNames = sortedDependencies . map (
43
+ ( item ) => item . name
44
+ ) ;
45
45
46
46
if ( String ( currentNames ) !== String ( sortedNames ) ) {
47
47
context . report ( {
48
- node,
48
+ fix : ( fixer ) =>
49
+ currentDependencies . map (
50
+ ( dependency , index ) =>
51
+ fixer . replaceText (
52
+ dependency ,
53
+ sortedNames [ index ]
54
+ )
55
+ ) ,
49
56
message : 'Sort dependencies' ,
50
- fix : function ( fixer ) {
51
- const fixes = [ ] ;
52
- currentDependencies . forEach (
53
- ( dep , index ) =>
54
- fixes . push ( fixer . replaceText ( dep , sortedNames [ index ] ) )
55
- ) ;
56
- return fixes ;
57
- }
57
+ node,
58
58
} ) ;
59
59
}
60
60
}
61
61
}
62
- }
62
+ } ,
63
63
} ;
64
- }
64
+ } ,
65
+ meta : {
66
+ docs : {
67
+ category : 'Stylistic Issues' ,
68
+ description : 'Sort React dependency arrays' ,
69
+ recommended : false ,
70
+ url : 'https://github.com/stevensacks/eslint-plugin-sort-react-dependency-arrays' ,
71
+ } ,
72
+ fixable : 'code' ,
73
+ schema : [ ] ,
74
+ type : 'suggestion' , // no options
75
+ } ,
65
76
} ;
0 commit comments