@@ -21,6 +21,38 @@ const messages = {
2121 propsNotSorted : 'Prop types declarations should be sorted alphabetically' ,
2222} ;
2323
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+
2456module . exports = {
2557 meta : {
2658 docs : {
@@ -71,38 +103,6 @@ module.exports = {
71103
72104 const typeAnnotations = new Map ( ) ;
73105
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-
106106 /**
107107 * Checks if propTypes declarations are sorted
108108 * @param {Array } declarations The array of AST nodes being checked.
@@ -137,8 +137,8 @@ module.exports = {
137137 return decls [ idx + 1 ] ;
138138 }
139139
140- let prevPropName = getKey ( prev ) ;
141- let currentPropName = getKey ( curr ) ;
140+ let prevPropName = getKey ( context , prev ) ;
141+ let currentPropName = getKey ( context , curr ) ;
142142 const previousIsRequired = isRequiredProp ( prev ) ;
143143 const currentIsRequired = isRequiredProp ( curr ) ;
144144 const previousIsCallback = isCallbackPropName ( prevPropName ) ;
0 commit comments