isReactComponentMethod.js 982 B

12345678910111213141516171819202122232425262728293031323334
  1. import getPropertyName from './getPropertyName.js';
  2. const componentMethods = [
  3. 'componentDidMount',
  4. 'componentDidReceiveProps',
  5. 'componentDidUpdate',
  6. 'componentWillMount',
  7. 'UNSAFE_componentWillMount',
  8. 'componentWillReceiveProps',
  9. 'UNSAFE_componentWillReceiveProps',
  10. 'componentWillUnmount',
  11. 'componentWillUpdate',
  12. 'UNSAFE_componentWillUpdate',
  13. 'getChildContext',
  14. 'getDefaultProps',
  15. 'getInitialState',
  16. 'render',
  17. 'shouldComponentUpdate',
  18. 'getDerivedStateFromProps',
  19. 'getDerivedStateFromError',
  20. 'getSnapshotBeforeUpdate',
  21. 'componentDidCatch',
  22. ];
  23. /**
  24. * Returns if the method path is a Component method.
  25. */
  26. export default function (methodPath) {
  27. if (!methodPath.isClassMethod() &&
  28. !methodPath.isObjectMethod() &&
  29. !methodPath.isObjectProperty()) {
  30. return false;
  31. }
  32. const name = getPropertyName(methodPath);
  33. return Boolean(name && componentMethods.indexOf(name) !== -1);
  34. }