minimalVisitor.js 981 B

123456789101112131415161718192021222324252627282930313233343536373839
  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 = _interopRequireDefault(require("./buildOptimizedSequenceExpression"));
  8. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  9. const minimalVisitor = {
  10. BinaryExpression(path) {
  11. const {
  12. scope,
  13. node
  14. } = path;
  15. const {
  16. operator,
  17. left,
  18. right
  19. } = node;
  20. if (operator !== "|>") return;
  21. const placeholder = scope.generateUidIdentifierBasedOnNode(left);
  22. const call = _core.types.callExpression(right, [_core.types.cloneNode(placeholder)]);
  23. path.replaceWith((0, _buildOptimizedSequenceExpression.default)({
  24. assign: _core.types.assignmentExpression("=", _core.types.cloneNode(placeholder), left),
  25. call,
  26. path
  27. }));
  28. }
  29. };
  30. var _default = minimalVisitor;
  31. exports.default = _default;