Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Converts
- export default class extends React.PureComponent {
- static displayName = 'Calendar';
- ...
- }
- to this:
- export default class Calendar extends React.PureComponent {
- ...
- }
- ----
- Usage:
- jscodeshift -d -p -t moveDisplayNameToClass.js <path>
- */
- module.exports = function(file, api) {
- const j = api.jscodeshift;
- return j(file.source)
- .find(j.ClassExpression, { superClass: { object: { name: 'React' } } })
- .filter(p => {
- const firstBody = p.value.body.body[0];
- if (!firstBody) return false;
- return firstBody.key.name === 'displayName';
- })
- .replaceWith(p => {
- const displayName = p.value.body.body[0].value.value;
- const newBody = p.value.body;
- newBody.body = newBody.body.slice(1);
- return j.classExpression(
- j.identifier(displayName),
- newBody,
- p.value.superClass
- );
- })
- .toSource();
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement