text: "use strict";
  
  exports.__esModule = true;
  exports.Identifier = Identifier;
  exports.SpreadElement = exports.RestElement = RestElement;
  exports.ObjectPattern = exports.ObjectExpression = ObjectExpression;
  exports.ObjectMethod = ObjectMethod;
  exports.ObjectProperty = ObjectProperty;
  exports.ArrayPattern = exports.ArrayExpression = ArrayExpression;
  exports.RegExpLiteral = RegExpLiteral;
  exports.BooleanLiteral = BooleanLiteral;
  exports.NullLiteral = NullLiteral;
  exports.NumericLiteral = NumericLiteral;
  exports.StringLiteral = StringLiteral;
  
  var t = _interopRequireWildcard(require("@babel/types"));
  
  var _jsesc = _interopRequireDefault(require("jsesc"));
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
  
  function Identifier(node) {
    this.word(node.name);
  }
  
  function RestElement(node) {
    this.token("...");
    this.print(node.argument, node);
  }
  
  function ObjectExpression(node) {
    var props = node.properties;
    this.token("{");
    this.printInnerComments(node);
  
    if (props.length) {
      this.space();
      this.printList(props, node, {
        indent: true,
        statement: true
      });
      this.space();
    }
  
    this.token("}");
  }
  
  function ObjectMethod(node) {
    this.printJoin(node.decorators, node);
  
    this._methodHead(node);
  
    this.space();
    this.print(node.body, node);
  }
  
  function ObjectProperty(node) {
    this.printJoin(node.decorators, node);
  
    if (node.computed) {
      this.token("[");
      this.print(node.key, node);
      this.token("]");
    } else {
      if (t.isAssignmentPattern(node.value) && t.isIdentifier(node.key) && node.key.name === node.value.left.name) {
        this.print(node.value, node);
        return;
      }
  
      this.print(node.key, node);
  
      if (node.shorthand && t.isIdentifier(node.key) && t.isIdentifier(node.value) && node.key.name === node.value.name) {
        return;
      }
    }
  
    this.token(":");
    this.space();
    this.print(node.value, node);
  }
  
  function ArrayExpression(node) {
    var elems = node.elements;
    var len = elems.length;
    this.token("[");
    this.printInnerComments(node);
  
    for (var i = 0; i < elems.length; i++) {
      var elem = elems[i];
  
      if (elem) {
        if (i > 0) this.space();
        this.print(elem, node);
        if (i < len - 1) this.token(",");
      } else {
        this.token(",");
      }
    }
  
    this.token("]");
  }
  
  function RegExpLiteral(node) {
    this.word("/" + node.pattern + "/" + node.flags);
  }
  
  function BooleanLiteral(node) {
    this.word(node.value ? "true" : "false");
  }
  
  function NullLiteral() {
    this.word("null");
  }
  
  function NumericLiteral(node) {
    var raw = this.getPossibleRaw(node);
    var value = node.value + "";
  
    if (raw == null) {
      this.number(value);
    } else if (this.format.minified) {
      this.number(raw.length < value.length ? raw : value);
    } else {
      this.number(raw);
    }
  }
  
  function StringLiteral(node, parent) {
    var raw = this.getPossibleRaw(node);
  
    if (!this.format.minified && raw != null) {
      this.token(raw);
      return;
    }
  
    var opts = {
      quotes: t.isJSX(parent) ? "double" : this.format.quotes,
      wrap: true
    };
  
    if (this.format.jsonCompatibleStrings) {
      opts.json = true;
    }
  
    var val = (0, _jsesc.default)(node.value, opts);
    return this.token(val);
  }