UNPKG

5.71 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _regenerator;
8
9function _load_regenerator() {
10 return _regenerator = _interopRequireDefault(require('babel-runtime/regenerator'));
11}
12
13var _asyncToGenerator2;
14
15function _load_asyncToGenerator() {
16 return _asyncToGenerator2 = _interopRequireDefault(require('babel-runtime/helpers/asyncToGenerator'));
17}
18
19var optsAsync = function () {
20 var _ref = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)( /*#__PURE__*/(_regenerator || _load_regenerator()).default.mark(function _callee(projectDir, options) {
21 var opts, rawArgs;
22 return (_regenerator || _load_regenerator()).default.wrap(function _callee$(_context) {
23 while (1) {
24 switch (_context.prev = _context.next) {
25 case 0:
26 _context.next = 2;
27 return (_xdl || _load_xdl()).ProjectSettings.readAsync(projectDir);
28
29 case 2:
30 opts = _context.sent;
31
32 if (!(!!options.host + !!options.lan + !!options.localhost + !!options.tunnel > 1)) {
33 _context.next = 5;
34 break;
35 }
36
37 throw (0, (_CommandError || _load_CommandError()).default)('BAD_ARGS', 'Specify at most one of --host, --tunnel, --lan, and --localhost');
38
39 case 5:
40
41 if (options.host) {
42 opts.hostType = options.host;
43 }
44 if (options.tunnel) {
45 opts.hostType = 'tunnel';
46 }
47 if (options.lan) {
48 opts.hostType = 'lan';
49 }
50 if (options.localhost) {
51 opts.hostType = 'localhost';
52 }
53
54 rawArgs = options.parent.rawArgs;
55
56 if (hasBooleanArg(rawArgs, 'dev')) {
57 opts.dev = getBooleanArg(rawArgs, 'dev');
58 }
59 if (hasBooleanArg(rawArgs, 'minify')) {
60 opts.minify = getBooleanArg(rawArgs, 'minify');
61 }
62
63 _context.next = 14;
64 return (_xdl || _load_xdl()).ProjectSettings.setAsync(projectDir, opts);
65
66 case 14:
67 return _context.abrupt('return', opts);
68
69 case 15:
70 case 'end':
71 return _context.stop();
72 }
73 }
74 }, _callee, this);
75 }));
76
77 return function optsAsync(_x, _x2) {
78 return _ref.apply(this, arguments);
79 };
80}();
81
82var handleMobileOptsAsync = function () {
83 var _ref2 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)( /*#__PURE__*/(_regenerator || _load_regenerator()).default.mark(function _callee2(projectDir, options) {
84 return (_regenerator || _load_regenerator()).default.wrap(function _callee2$(_context2) {
85 while (1) {
86 switch (_context2.prev = _context2.next) {
87 case 0:
88 if (!options.android) {
89 _context2.next = 3;
90 break;
91 }
92
93 _context2.next = 3;
94 return (_xdl || _load_xdl()).Android.openProjectAsync(projectDir);
95
96 case 3:
97 if (!options.ios) {
98 _context2.next = 6;
99 break;
100 }
101
102 _context2.next = 6;
103 return (_xdl || _load_xdl()).Simulator.openProjectAsync(projectDir);
104
105 case 6:
106 return _context2.abrupt('return', !!options.android || !!options.ios);
107
108 case 7:
109 case 'end':
110 return _context2.stop();
111 }
112 }
113 }, _callee2, this);
114 }));
115
116 return function handleMobileOptsAsync(_x3, _x4) {
117 return _ref2.apply(this, arguments);
118 };
119}();
120
121var _indentString;
122
123function _load_indentString() {
124 return _indentString = _interopRequireDefault(require('indent-string'));
125}
126
127var _lodash;
128
129function _load_lodash() {
130 return _lodash = _interopRequireDefault(require('lodash'));
131}
132
133var _qrcodeTerminal;
134
135function _load_qrcodeTerminal() {
136 return _qrcodeTerminal = _interopRequireDefault(require('qrcode-terminal'));
137}
138
139var _xdl;
140
141function _load_xdl() {
142 return _xdl = require('xdl');
143}
144
145var _CommandError;
146
147function _load_CommandError() {
148 return _CommandError = _interopRequireDefault(require('./CommandError'));
149}
150
151function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
152
153function addOptions(program) {
154 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('-m, --host [mode]', 'tunnel (default), lan, 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');
155}
156
157function hasBooleanArg(rawArgs, argName) {
158 return (_lodash || _load_lodash()).default.includes(rawArgs, '--' + argName) || (_lodash || _load_lodash()).default.includes(rawArgs, '--no-' + argName);
159}
160
161function getBooleanArg(rawArgs, argName) {
162 if ((_lodash || _load_lodash()).default.includes(rawArgs, '--' + argName)) {
163 return true;
164 } else {
165 return false;
166 }
167}
168
169function printQRCode(url) {
170 (_qrcodeTerminal || _load_qrcodeTerminal()).default.generate(url, function (code) {
171 return console.log((0, (_indentString || _load_indentString()).default)(code, 2) + '\n');
172 });
173}
174
175exports.default = {
176 addOptions: addOptions,
177 handleMobileOptsAsync: handleMobileOptsAsync,
178 printQRCode: printQRCode,
179 optsAsync: optsAsync
180};
181module.exports = exports['default'];
182//# sourceMappingURL=__sourcemaps__/urlOpts.js.map