UNPKG

@atlaskit/eslint-plugin-design-system

Version:

The essential plugin for use with the Atlassian Design System.

23 lines 988 B
import { closestOfType } from 'eslint-codemod-utils'; import { getImportedNodeBySource } from '../utils/get-imported-node-by-source'; import { IMPORT_NAME, VISUALLY_HIDDEN_IMPORT, VISUALLY_HIDDEN_SOURCE } from './constants'; import { getFirstImport } from './get-first-import'; var fixJsx = function fixJsx(source, node) { return function (fixer) { var fixes = []; var importedNode = getFirstImport(source); var visuallyHiddenNode = getImportedNodeBySource(source, VISUALLY_HIDDEN_SOURCE); if (!importedNode) { return []; } var jsxOpeningElement = closestOfType(node, 'JSXOpeningElement'); if (visuallyHiddenNode) { fixes.push(fixer.replaceText(jsxOpeningElement, visuallyHiddenNode.specifiers[0].local.name)); } else { fixes.push(fixer.insertTextBefore(importedNode, VISUALLY_HIDDEN_IMPORT)); fixes.push(fixer.replaceText(jsxOpeningElement, "<".concat(IMPORT_NAME, " />"))); } return fixes; }; }; export default fixJsx;