“use strict”;

Object.defineProperty(exports, “__esModule”, {

value: true

}); exports.hooks = void 0; const hooks = [function (self, parent) {

const 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();

if (removeParent) {
  parent.remove();
  return true;
}

}, function (self, parent) {

if (parent.isSequenceExpression() && parent.node.expressions.length === 1) {
  parent.replaceWith(parent.node.expressions[0]);
  return true;
}

}, function (self, parent) {

if (parent.isBinary()) {
  if (self.key === "left") {
    parent.replaceWith(parent.node.right);
  } else {
    parent.replaceWith(parent.node.left);
  }

  return true;
}

}, function (self, parent) {

if (parent.isIfStatement() && (self.key === "consequent" || self.key === "alternate") || self.key === "body" && (parent.isLoop() || parent.isArrowFunctionExpression())) {
  self.replaceWith({
    type: "BlockStatement",
    body: []
  });
  return true;
}

}]; exports.hooks = hooks;