@atlaskit/eslint-plugin-design-system
Version:
The essential plugin for use with the Atlassian Design System.
23 lines • 988 B
JavaScript
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;