Skip to content

Commit dd6e05c

Browse files
committed
[Refactor] sort-prop-types: hoist some functions to module level
1 parent cab612f commit dd6e05c

File tree

1 file changed

+34
-34
lines changed

1 file changed

+34
-34
lines changed

lib/rules/sort-prop-types.js

+34-34
Original file line numberDiff line numberDiff line change
@@ -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 /^on[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+
2456
module.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 /^on[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

Comments
 (0)