getClassMemberValuePath.js 829 B

1234567891011121314151617181920212223
  1. import getNameOrValue from './getNameOrValue.js';
  2. export default function getClassMemberValuePath(classDefinition, memberName) {
  3. const classMember = classDefinition
  4. .get('body')
  5. .get('body')
  6. .find((memberPath) => {
  7. if ((memberPath.isClassMethod() && memberPath.node.kind !== 'set') ||
  8. memberPath.isClassProperty()) {
  9. const key = memberPath.get('key');
  10. return ((!memberPath.node.computed || key.isLiteral()) &&
  11. getNameOrValue(key) === memberName);
  12. }
  13. return false;
  14. });
  15. if (classMember) {
  16. // For ClassProperty we return the value and for ClassMethod
  17. // we return itself
  18. return classMember.isClassMethod()
  19. ? classMember
  20. : classMember.get('value');
  21. }
  22. return null;
  23. }