UNPKG

@putout/operator-regexp

Version:

🐊Putout operator adds ability to check if provided regexp can be converted to string without losing it's sense

43 lines (32 loc) 848 B
import regexpTree from 'regexp-tree'; export const transformRegExp = (str, regExpTransformer) => { check(regExpTransformer); const { report, traverse, fix, } = regExpTransformer; const ast = regexpTree.parse(str, { captureLocations: true, }); const places = []; const push = (path) => { const {start} = (path.path || path).node.loc; places.push({ position: start, message: report(path), }); fix(path); }; regexpTree.traverse(ast, traverse({ push, })); return [ regexpTree.generate(ast), places, ]; }; function check(regExpTransformer) { if (!regExpTransformer) throw Error('☝️ Looks like RegExpTransformer is missing'); }