isReactChildrenElementCall.js 692 B

12345678910111213141516171819
  1. import isReactBuiltinReference from './isReactBuiltinReference.js';
  2. /**
  3. * Returns true if the expression is a function call of the form
  4. * `React.Children.only(...)` or `React.Children.map(...)`.
  5. */
  6. export default function isReactChildrenElementCall(path) {
  7. if (!path.isCallExpression()) {
  8. return false;
  9. }
  10. const callee = path.get('callee');
  11. if (callee.isMemberExpression()) {
  12. const calleeProperty = callee.get('property');
  13. if (calleeProperty.isIdentifier({ name: 'only' }) ||
  14. calleeProperty.isIdentifier({ name: 'map' })) {
  15. return isReactBuiltinReference(callee.get('object'), 'Children');
  16. }
  17. }
  18. return false;
  19. }