@@ -21,6 +21,38 @@ const messages = {
21
21
propsNotSorted : 'Prop types declarations should be sorted alphabetically' ,
22
22
} ;
23
23
24
+ function getKey ( context , node ) {
25
+ if ( node . type === 'ObjectTypeProperty' ) {
26
+ return context . getSourceCode ( ) . getFirstToken ( node ) . value ;
27
+ }
28
+ if ( node . key && node . key . value ) {
29
+ return node . key . value ;
30
+ }
31
+ return context . getSourceCode ( ) . getText ( node . key || node . argument ) ;
32
+ }
33
+
34
+ function getValueName ( node ) {
35
+ return node . type === 'Property' && node . value . property && node . value . property . name ;
36
+ }
37
+
38
+ function isCallbackPropName ( propName ) {
39
+ return / ^ o n [ A - Z ] / . test ( propName ) ;
40
+ }
41
+
42
+ function isRequiredProp ( node ) {
43
+ return getValueName ( node ) === 'isRequired' ;
44
+ }
45
+
46
+ function isShapeProp ( node ) {
47
+ return Boolean (
48
+ node && node . callee && node . callee . property && node . callee . property . name === 'shape'
49
+ ) ;
50
+ }
51
+
52
+ function toLowerCase ( item ) {
53
+ return String ( item ) . toLowerCase ( ) ;
54
+ }
55
+
24
56
module . exports = {
25
57
meta : {
26
58
docs : {
@@ -71,38 +103,6 @@ module.exports = {
71
103
72
104
const typeAnnotations = new Map ( ) ;
73
105
74
- function getKey ( node ) {
75
- if ( node . type === 'ObjectTypeProperty' ) {
76
- return context . getSourceCode ( ) . getFirstToken ( node ) . value ;
77
- }
78
- if ( node . key && node . key . value ) {
79
- return node . key . value ;
80
- }
81
- return context . getSourceCode ( ) . getText ( node . key || node . argument ) ;
82
- }
83
-
84
- function getValueName ( node ) {
85
- return node . type === 'Property' && node . value . property && node . value . property . name ;
86
- }
87
-
88
- function isCallbackPropName ( propName ) {
89
- return / ^ o n [ A - Z ] / . test ( propName ) ;
90
- }
91
-
92
- function isRequiredProp ( node ) {
93
- return getValueName ( node ) === 'isRequired' ;
94
- }
95
-
96
- function isShapeProp ( node ) {
97
- return Boolean (
98
- node && node . callee && node . callee . property && node . callee . property . name === 'shape'
99
- ) ;
100
- }
101
-
102
- function toLowerCase ( item ) {
103
- return String ( item ) . toLowerCase ( ) ;
104
- }
105
-
106
106
/**
107
107
* Checks if propTypes declarations are sorted
108
108
* @param {Array } declarations The array of AST nodes being checked.
@@ -137,8 +137,8 @@ module.exports = {
137
137
return decls [ idx + 1 ] ;
138
138
}
139
139
140
- let prevPropName = getKey ( prev ) ;
141
- let currentPropName = getKey ( curr ) ;
140
+ let prevPropName = getKey ( context , prev ) ;
141
+ let currentPropName = getKey ( context , curr ) ;
142
142
const previousIsRequired = isRequiredProp ( prev ) ;
143
143
const currentIsRequired = isRequiredProp ( curr ) ;
144
144
const previousIsCallback = isCallbackPropName ( prevPropName ) ;
0 commit comments