_babel-eslint-parser-workarounds.js 561 B

123456789101112131415161718192021222324252627282930
  1. const { map } = require('ramda');
  2. const visit = (node, visitor) => {
  3. if (!node || (typeof node !== 'object' && !Array.isArray(node))) {
  4. return node;
  5. }
  6. return map(value => {
  7. if (value && visitor[value.type]) {
  8. return visitor[value.type](value);
  9. }
  10. return visit(value, visitor);
  11. }, node);
  12. };
  13. module.exports = ast => {
  14. let shouldSkip = false;
  15. ast = visit(ast, {
  16. RegExpLiteral(node) {
  17. // WORKAROUND: https://github.com/babel/@babel/eslint-parser/issues/838
  18. shouldSkip = true;
  19. return node;
  20. },
  21. });
  22. return { ast, shouldSkip };
  23. };