minimalVisitor.js 790 B

12345678910111213141516171819202122232425262728293031323334353637
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _core = require("@babel/core");
  7. var _buildOptimizedSequenceExpression = require("./buildOptimizedSequenceExpression");
  8. const minimalVisitor = {
  9. BinaryExpression(path) {
  10. const {
  11. scope,
  12. node
  13. } = path;
  14. const {
  15. operator,
  16. left,
  17. right
  18. } = node;
  19. if (operator !== "|>") return;
  20. const placeholder = scope.generateUidIdentifierBasedOnNode(left);
  21. const call = _core.types.callExpression(right, [_core.types.cloneNode(placeholder)]);
  22. path.replaceWith((0, _buildOptimizedSequenceExpression.default)({
  23. placeholder,
  24. call,
  25. path: path
  26. }));
  27. }
  28. };
  29. var _default = minimalVisitor;
  30. exports.default = _default;