@jsxtools/eslint-plugin-jsx-a11y
Version:
Static AST checker for accessibility rules on JSX elements for flat ESLint Config.
18 lines (15 loc) • 677 B
JavaScript
import { getLiteralPropValue, getProp, elementType } from './module/jsx-ast-utils.js';
const getElementType = (context) => {
const { settings } = context;
const polymorphicPropName = settings["jsx-a11y"]?.polymorphicPropName;
const componentMap = settings["jsx-a11y"]?.components;
return (node) => {
const polymorphicProp = polymorphicPropName ? getLiteralPropValue(getProp(node.attributes, polymorphicPropName)) : void 0;
const rawType = polymorphicProp ?? elementType(node);
if (!componentMap) {
return rawType;
}
return Object.hasOwn(componentMap, rawType) ? componentMap[rawType] : rawType;
};
};
export { getElementType as default };