UNPKG

@atlaskit/eslint-plugin-design-system

Version:

The essential plugin for use with the Atlassian Design System.

29 lines (26 loc) 1.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.hasTextChildrenOnly = hasTextChildrenOnly; var _eslintCodemodUtils = require("eslint-codemod-utils"); var _functionCall = require("../../../ast-nodes/function-call"); var _jsxElementHelper = require("../../../ast-nodes/jsx-element-helper"); // The use of `<FormattedMessage ... />` component and `{formatMessage(...)}` are allowed as these are used for i18n function hasTextChildrenOnly(node) { var _node$children; return (_node$children = node.children) === null || _node$children === void 0 ? void 0 : _node$children.every(function (child) { if ((0, _eslintCodemodUtils.isNodeOfType)(child, 'JSXText')) { return true; } // JSX child element <span><FormattedMessage /></span> if ((0, _eslintCodemodUtils.isNodeOfType)(child, 'JSXElement') && _jsxElementHelper.JSXElementHelper.getName(child) === 'FormattedMessage') { return true; } // JSX expression <span>{formatMessage(...)}</span> if ((0, _eslintCodemodUtils.isNodeOfType)(child, 'JSXExpressionContainer') && (0, _eslintCodemodUtils.isNodeOfType)(child.expression, 'CallExpression')) { return _functionCall.FunctionCall.getName(child.expression) === 'formatMessage'; } return false; }); }