Advertisement
Guest User

Untitled

a guest
May 26th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. /* Converts
  2.  
  3. export default class extends React.PureComponent {
  4. static displayName = 'Calendar';
  5. ...
  6. }
  7.  
  8. to this:
  9.  
  10. export default class Calendar extends React.PureComponent {
  11. ...
  12. }
  13.  
  14. ----
  15.  
  16. Usage:
  17.  
  18. jscodeshift -d -p -t moveDisplayNameToClass.js <path>
  19. */
  20.  
  21. module.exports = function(file, api) {
  22. const j = api.jscodeshift;
  23. return j(file.source)
  24. .find(j.ClassExpression, { superClass: { object: { name: 'React' } } })
  25. .filter(p => {
  26. const firstBody = p.value.body.body[0];
  27. if (!firstBody) return false;
  28. return firstBody.key.name === 'displayName';
  29. })
  30. .replaceWith(p => {
  31. const displayName = p.value.body.body[0].value.value;
  32. const newBody = p.value.body;
  33. newBody.body = newBody.body.slice(1);
  34.  
  35. return j.classExpression(
  36. j.identifier(displayName),
  37. newBody,
  38. p.value.superClass
  39. );
  40. })
  41. .toSource();
  42. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement