Skip to content

Commit

Permalink
Class transform clean up (#90)
Browse files Browse the repository at this point in the history
* Moved all `class` tests to a folder

* Fixed specifiers definition (`id` -> `local`)

* bumped Jest

* yarned it

* specified the new objectCurlySpacing print option

* updated README (yarn)
  • Loading branch information
keyz authored and cpojer committed Nov 29, 2016
1 parent d0b9a63 commit 393bb0c
Show file tree
Hide file tree
Showing 43 changed files with 3,905 additions and 22 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ APIs.
* `git clone https://github.com/reactjs/react-codemod.git` or download a zip file
from `https://github.com/reactjs/react-codemod/archive/master.zip`
* Run `npm install` in the react-codemod directory
* Alternatively, run [`yarn`](https://yarnpkg.com/) to install in the
react-codemod directory for a reliable dependency resolution
* `jscodeshift -t <codemod-script> <path>`
* Use the `-d` option for a dry-run and use `-p` to print the output
for comparison
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"babel-jest": "^15.0.0",
"eslint": "^2.13.1",
"fbjs-scripts": "^0.7.1",
"jest": "^15.1.1"
"jest": "^17.0.3"
},
"jest": {
"globals": {
Expand Down
File renamed without changes.
File renamed without changes.
38 changes: 19 additions & 19 deletions transforms/__tests__/class-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,34 +19,34 @@ const pureMixinAlternativeOption = {

const enableFlowOption = {flow: true};

defineTest(__dirname, 'class');
defineTest(__dirname, 'class', enableFlowOption, 'class-anonymous');
defineTest(__dirname, 'class', enableFlowOption, 'class-anonymous2');
defineTest(__dirname, 'class', pureMixinAlternativeOption, 'class-test2');
defineTest(__dirname, 'class', enableFlowOption, 'export-default-class');
defineTest(__dirname, 'class', pureMixinAlternativeOption, 'class-pure-mixin1');
defineTest(__dirname, 'class', null, 'class/class');
defineTest(__dirname, 'class', enableFlowOption, 'class/class-anonymous');
defineTest(__dirname, 'class', enableFlowOption, 'class/class-anonymous2');
defineTest(__dirname, 'class', pureMixinAlternativeOption, 'class/class-test2');
defineTest(__dirname, 'class', enableFlowOption, 'class/export-default-class');
defineTest(__dirname, 'class', pureMixinAlternativeOption, 'class/class-pure-mixin1');
defineTest(__dirname, 'class', {
...enableFlowOption,
'pure-component': true,
}, 'class-pure-mixin2');
defineTest(__dirname, 'class', null, 'class-pure-mixin3');
}, 'class/class-pure-mixin2');
defineTest(__dirname, 'class', null, 'class/class-pure-mixin3');
defineTest(__dirname, 'class', {
...pureMixinAlternativeOption,
...enableFlowOption,
}, 'class-pure-mixin4');
}, 'class/class-pure-mixin4');
defineTest(__dirname, 'class', {
...pureMixinAlternativeOption,
...enableFlowOption,
}, 'class-top-comment');
defineTest(__dirname, 'class', enableFlowOption, 'class-initial-state');
defineTest(__dirname, 'class', enableFlowOption, 'class-property-field');
defineTest(__dirname, 'class', enableFlowOption, 'class-flow1');
defineTest(__dirname, 'class', enableFlowOption, 'class-flow2');
defineTest(__dirname, 'class', enableFlowOption, 'class-flow3');
defineTest(__dirname, 'class', enableFlowOption, 'class-flow4');
defineTest(__dirname, 'class', enableFlowOption, 'class-flow5');
defineTest(__dirname, 'class', enableFlowOption, 'class-flow6');
}, 'class/class-top-comment');
defineTest(__dirname, 'class', enableFlowOption, 'class/class-initial-state');
defineTest(__dirname, 'class', enableFlowOption, 'class/class-property-field');
defineTest(__dirname, 'class', enableFlowOption, 'class/class-flow1');
defineTest(__dirname, 'class', enableFlowOption, 'class/class-flow2');
defineTest(__dirname, 'class', enableFlowOption, 'class/class-flow3');
defineTest(__dirname, 'class', enableFlowOption, 'class/class-flow4');
defineTest(__dirname, 'class', enableFlowOption, 'class/class-flow5');
defineTest(__dirname, 'class', enableFlowOption, 'class/class-flow6');
defineTest(__dirname, 'class', {
...enableFlowOption,
'remove-runtime-proptypes': true,
}, 'class-flow7');
}, 'class/class-flow7');
6 changes: 4 additions & 2 deletions transforms/class.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ module.exports = (file, api, options) => {
trailingComma: true,
flowObjectCommas: true,
arrowParensAlways: true,
arrayBracketSpacing: false,
objectCurlySpacing: false,
};

const root = j(file.source);
Expand Down Expand Up @@ -396,7 +398,7 @@ module.exports = (file, api, options) => {
importStatement.forEach(path => {
result = {
path,
binding: path.value.specifiers[0].id.name,
binding: path.value.specifiers[0].local.name,
type: 'import',
};
});
Expand Down Expand Up @@ -1020,7 +1022,7 @@ module.exports = (file, api, options) => {
// Ignore import bindings
.filter(identifierPath => !(
path.value.type === 'ImportDeclaration' &&
path.value.specifiers.some(specifier => specifier.id === identifierPath.value)
path.value.specifiers.some(specifier => specifier.local === identifierPath.value)
))
// Ignore properties in MemberExpressions
.filter(identifierPath => {
Expand Down
Loading

0 comments on commit 393bb0c

Please sign in to comment.