"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = _default;

function _chalk() {
  const data = _interopRequireDefault(require("chalk"));

  _chalk = function () {
    return data;
  };

  return data;
}

function _xdl() {
  const data = require("@expo/xdl");

  _xdl = function () {
    return data;
  };

  return data;
}

function _askUser() {
  const data = _interopRequireDefault(require("../askUser"));

  _askUser = function () {
    return data;
  };

  return data;
}

function _log() {
  const data = _interopRequireDefault(require("../log"));

  _log = function () {
    return data;
  };

  return data;
}

function _sendTo() {
  const data = _interopRequireDefault(require("../sendTo"));

  _sendTo = function () {
    return data;
  };

  return data;
}

function _urlOpts() {
  const data = _interopRequireDefault(require("../urlOpts"));

  _urlOpts = function () {
    return data;
  };

  return data;
}

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

async function action(projectDir, options) {
  await _urlOpts().default.optsAsync(projectDir, options);
  let url = await _xdl().UrlUtils.constructManifestUrlAsync(projectDir);
  (0, _log().default)('Your URL is\n\n' + _chalk().default.underline(url) + '\n');

  _log().default.raw(url);

  let shouldQuit = false;

  if (await _urlOpts().default.handleMobileOptsAsync(projectDir, options)) {
    shouldQuit = true;
  }

  if (shouldQuit) {
    return;
  }

  var recipient;

  if (typeof options.sendTo !== 'boolean') {
    recipient = options.sendTo;
  } else {
    recipient = await _xdl().UserSettings.getAsync('sendTo', null);
  }

  if (!recipient) {
    recipient = await _askUser().default.askForSendToAsync();
  }

  if (recipient) {
    await _sendTo().default.sendUrlAsync(url, recipient);
  } else {
    _log().default.gray("(Not sending anything because you didn't specify a recipient.)");
  }

  process.exit();
}

function _default(program) {
  program.command('send [project-dir]').description('Sends a link to your project to an email address') //.help('You must have the server running for this command to work')
  .option('-s, --send-to  [dest]', 'Specifies the email address to send this URL to').urlOpts().asyncActionProjectDir(action);
}
//# sourceMappingURL=../__sourcemaps__/commands/send.js.map