@putout/plugin-regexp
Version:
🐊Putout plugin helps with regexp
29 lines (23 loc) • 840 B
JavaScript
const isChar = ({type}) => type === 'Char';
export const report = () => 'Remove duplicates from character class';
export const fix = ({path, j}) => delete path.node.expressions[j];
export const traverse = ({push}) => ({
CharacterClass(path) {
const {expressions} = path.node;
for (const [i, a] of expressions.entries()) {
for (const [j, b] of expressions.entries()) {
if (i === j)
continue;
if (!a || !b)
continue;
if (!isChar(a) || !isChar(b))
continue;
if (a.value === b.value)
push({
j,
path,
});
}
}
},
});