"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; function _indentString() { const data = _interopRequireDefault(require("indent-string")); _indentString = function () { return data; }; return data; } function _qrcodeTerminal() { const data = _interopRequireDefault(require("qrcode-terminal")); _qrcodeTerminal = function () { return data; }; return data; } function _xdl() { const data = require("@expo/xdl"); _xdl = function () { return data; }; return data; } function _CommandError() { const data = _interopRequireDefault(require("./CommandError")); _CommandError = function () { return data; }; return data; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function addOptions(program) { program.option('-a, --android', 'Opens your app in Expo on a connected Android device').option('-i, --ios', 'Opens your app in Expo in a currently running iOS simulator on your computer').option('-w, --web', 'Opens your app in a web browser').option('-m, --host [mode]', 'lan (default), tunnel, localhost. Type of host to use. "tunnel" allows you to view your link on other networks').option('--tunnel', 'Same as --host tunnel').option('--lan', 'Same as --host lan').option('--localhost', 'Same as --host localhost').option('--dev', 'Turns dev flag on').option('--no-dev', 'Turns dev flag off').option('--minify', 'Turns minify flag on').option('--no-minify', 'Turns minify flag off').option('--https', 'To start webpack with https protocol').option('--no-https', 'To start webpack with http protocol'); } function hasBooleanArg(rawArgs, argName) { return rawArgs.includes('--' + argName) || rawArgs.includes('--no-' + argName); } function getBooleanArg(rawArgs, argName) { if (rawArgs.includes('--' + argName)) { return true; } else { return false; } } async function optsAsync(projectDir, options) { var opts = await _xdl().ProjectSettings.readAsync(projectDir); if ([options.host, options.lan, options.localhost, options.tunnel].filter(i => i).length > 1) { throw new (_CommandError().default)('BAD_ARGS', 'Specify at most one of --host, --tunnel, --lan, and --localhost'); } if (options.host) { opts.hostType = options.host; } else if (options.tunnel) { opts.hostType = 'tunnel'; } else if (options.lan) { opts.hostType = 'lan'; } else if (options.localhost) { opts.hostType = 'localhost'; } else { opts.hostType = 'lan'; } let rawArgs = options.parent.rawArgs; if (hasBooleanArg(rawArgs, 'dev')) { opts.dev = getBooleanArg(rawArgs, 'dev'); } if (hasBooleanArg(rawArgs, 'minify')) { opts.minify = getBooleanArg(rawArgs, 'minify'); } if (hasBooleanArg(rawArgs, 'https')) { opts.https = getBooleanArg(rawArgs, 'https'); } await _xdl().ProjectSettings.setAsync(projectDir, opts); return opts; } function printQRCode(url) { _qrcodeTerminal().default.generate(url, code => console.log(`${(0, _indentString().default)(code, 2)}\n`)); } async function handleMobileOptsAsync(projectDir, options) { if (options.android) { if (options.webOnly) { await _xdl().Android.openWebProjectAsync(projectDir); } else { await _xdl().Android.openProjectAsync(projectDir); } } if (options.ios) { if (options.webOnly) { await _xdl().Simulator.openWebProjectAsync(projectDir); } else { await _xdl().Simulator.openProjectAsync(projectDir); } } if (options.web) { await _xdl().Webpack.openAsync(projectDir); } return !!options.android || !!options.ios; } var _default = { addOptions, handleMobileOptsAsync, printQRCode, optsAsync }; exports.default = _default; //# sourceMappingURL=__sourcemaps__/urlOpts.js.map