Skip to content

Commit deb0447

Browse files
committed
Merge pull request #123 from Cellule/sort_prop_types_key
Fix `jsx-sort-prop-types` support for keys as string
2 parents 9583f81 + 1cd3686 commit deb0447

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

lib/rules/jsx-sort-prop-types.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,19 @@ module.exports = function(context) {
3535
);
3636
}
3737

38+
function getKey(node) {
39+
return node.key.type === 'Identifier' ? node.key.name : node.key.value;
40+
}
41+
3842
/**
3943
* Checks if propTypes declarations are sorted
4044
* @param {Array} declarations The array of AST nodes being checked.
4145
* @returns {void}
4246
*/
4347
function checkSorted(declarations) {
4448
declarations.reduce(function(prev, curr) {
45-
var prevPropName = prev.key.name;
46-
var currenPropName = curr.key.name;
49+
var prevPropName = getKey(prev);
50+
var currenPropName = getKey(curr);
4751

4852
if (ignoreCase) {
4953
prevPropName = prevPropName.toLowerCase();

tests/lib/rules/jsx-sort-prop-types.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,21 @@ eslintTester.addRuleTest('lib/rules/jsx-sort-prop-types', {
161161
classes: true,
162162
jsx: true
163163
}
164+
}, {
165+
code: [
166+
'class Hello extends React.Component {',
167+
' render() {',
168+
' return <div>Hello</div>;',
169+
' }',
170+
'}',
171+
'Hello.propTypes = {',
172+
' "aria-controls": React.PropTypes.string',
173+
'};'
174+
].join('\n'),
175+
parser: 'babel-eslint',
176+
args: [1, {
177+
ignoreCase: true
178+
}]
164179
}
165180
],
166181

0 commit comments

Comments
 (0)