UNPKG

@atlaskit/eslint-plugin-design-system

Version:

The essential plugin for use with the Atlassian Design System.

24 lines (21 loc) 1.02 kB
import { isNodeOfType } from 'eslint-codemod-utils'; import { FunctionCall } from '../../../ast-nodes/function-call'; import { JSXElementHelper } from '../../../ast-nodes/jsx-element-helper'; // The use of `<FormattedMessage ... />` component and `{formatMessage(...)}` are allowed as these are used for i18n export function hasTextChildrenOnly(node) { var _node$children; return (_node$children = node.children) === null || _node$children === void 0 ? void 0 : _node$children.every(child => { if (isNodeOfType(child, 'JSXText')) { return true; } // JSX child element <span><FormattedMessage /></span> if (isNodeOfType(child, 'JSXElement') && JSXElementHelper.getName(child) === 'FormattedMessage') { return true; } // JSX expression <span>{formatMessage(...)}</span> if (isNodeOfType(child, 'JSXExpressionContainer') && isNodeOfType(child.expression, 'CallExpression')) { return FunctionCall.getName(child.expression) === 'formatMessage'; } return false; }); }