fsharpVisitor.js 918 B

123456789101112131415161718192021222324252627282930313233343536
  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 fsharpVisitor = {
  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 = right.type === "AwaitExpression" ? _core.types.awaitExpression(_core.types.cloneNode(placeholder)) : _core.types.callExpression(right, [_core.types.cloneNode(placeholder)]);
  22. const sequence = (0, _buildOptimizedSequenceExpression.default)({
  23. placeholder,
  24. call,
  25. path: path
  26. });
  27. path.replaceWith(sequence);
  28. }
  29. };
  30. var _default = fsharpVisitor;
  31. exports.default = _default;