bafd362371675835c9138c653da5e8f084c557ba18be494ea8aef2c80ddfe2657bf26dce70323b76c87f89dc1795f7a44fd9ee64b2439fd2176f796edb4be6 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. "use strict";
  2. exports.__esModule = true;
  3. var hooks = exports.hooks = [function (self, parent) {
  4. var removeParent = self.key === "test" && (parent.isWhile() || parent.isSwitchCase()) || self.key === "declaration" && parent.isExportDeclaration() || self.key === "body" && parent.isLabeledStatement() || self.listKey === "declarations" && parent.isVariableDeclaration() && parent.node.declarations.length === 1 || self.key === "expression" && parent.isExpressionStatement();
  5. if (removeParent) {
  6. parent.remove();
  7. return true;
  8. }
  9. }, function (self, parent) {
  10. if (parent.isSequenceExpression() && parent.node.expressions.length === 1) {
  11. parent.replaceWith(parent.node.expressions[0]);
  12. return true;
  13. }
  14. }, function (self, parent) {
  15. if (parent.isBinary()) {
  16. if (self.key === "left") {
  17. parent.replaceWith(parent.node.right);
  18. } else {
  19. parent.replaceWith(parent.node.left);
  20. }
  21. return true;
  22. }
  23. }, function (self, parent) {
  24. if (parent.isIfStatement() && (self.key === "consequent" || self.key === "alternate") || self.key === "body" && (parent.isLoop() || parent.isArrowFunctionExpression())) {
  25. self.replaceWith({
  26. type: "BlockStatement",
  27. body: []
  28. });
  29. return true;
  30. }
  31. }];