Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

49 строки
1.3 KiB

  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _h2xTypes = require("h2x-types");
  7. var _TraversalContext = _interopRequireDefault(require("./TraversalContext"));
  8. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  9. /* eslint-disable no-restricted-syntax */
  10. function traverse(ast, opts = {}, state = {}) {
  11. if (!ast) return;
  12. const keys = (0, _h2xTypes.getNodeVisitorKeys)(ast);
  13. if (!keys) return;
  14. const context = new _TraversalContext.default({
  15. opts,
  16. state
  17. });
  18. var _iteratorNormalCompletion = true;
  19. var _didIteratorError = false;
  20. var _iteratorError = undefined;
  21. try {
  22. for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
  23. const key = _step.value;
  24. if (context.visit(ast, key)) return;
  25. }
  26. } catch (err) {
  27. _didIteratorError = true;
  28. _iteratorError = err;
  29. } finally {
  30. try {
  31. if (!_iteratorNormalCompletion && _iterator.return != null) {
  32. _iterator.return();
  33. }
  34. } finally {
  35. if (_didIteratorError) {
  36. throw _iteratorError;
  37. }
  38. }
  39. }
  40. }
  41. var _default = traverse;
  42. exports.default = _default;