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