babel-plugin-react-remove-properties
Version:
37 lines (32 loc) • 1.09 kB
JavaScript
// @flow weak
export default function() {
return {
visitor: {
Program(path, state) {
// On program start, do an explicit traversal up front for this plugin.
const properties = state.opts.properties || [];
if (state.opts.property) {
/* eslint-disable no-console */
console.warn(`
babel-plugin-react-remove-properties:
The property option is deprecated, instead use the properties one.
`);
/* eslint-enable no-console */
properties.push(state.opts.property);
}
if (properties.length === 0) {
properties.push(/^data-test/);
}
path.traverse({
JSXIdentifier(path2) {
properties.forEach((property) => {
const regularExpressionMatch = property instanceof RegExp && property.test(path2.node.name);
const stringMatch = property === path2.node.name;
if (regularExpressionMatch || stringMatch) path2.parentPath.remove();
});
},
});
},
},
};
}