1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _regenerator;
|
8 |
|
9 | function _load_regenerator() {
|
10 | return _regenerator = _interopRequireDefault(require('babel-runtime/regenerator'));
|
11 | }
|
12 |
|
13 | var _asyncToGenerator2;
|
14 |
|
15 | function _load_asyncToGenerator() {
|
16 | return _asyncToGenerator2 = _interopRequireDefault(require('babel-runtime/helpers/asyncToGenerator'));
|
17 | }
|
18 |
|
19 | var optsAsync = function () {
|
20 | var _ref = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)( (_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 |
|
82 | var handleMobileOptsAsync = function () {
|
83 | var _ref2 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)( (_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 |
|
121 | var _indentString;
|
122 |
|
123 | function _load_indentString() {
|
124 | return _indentString = _interopRequireDefault(require('indent-string'));
|
125 | }
|
126 |
|
127 | var _lodash;
|
128 |
|
129 | function _load_lodash() {
|
130 | return _lodash = _interopRequireDefault(require('lodash'));
|
131 | }
|
132 |
|
133 | var _qrcodeTerminal;
|
134 |
|
135 | function _load_qrcodeTerminal() {
|
136 | return _qrcodeTerminal = _interopRequireDefault(require('qrcode-terminal'));
|
137 | }
|
138 |
|
139 | var _xdl;
|
140 |
|
141 | function _load_xdl() {
|
142 | return _xdl = require('xdl');
|
143 | }
|
144 |
|
145 | var _CommandError;
|
146 |
|
147 | function _load_CommandError() {
|
148 | return _CommandError = _interopRequireDefault(require('./CommandError'));
|
149 | }
|
150 |
|
151 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
152 |
|
153 | function 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 |
|
157 | function hasBooleanArg(rawArgs, argName) {
|
158 | return (_lodash || _load_lodash()).default.includes(rawArgs, '--' + argName) || (_lodash || _load_lodash()).default.includes(rawArgs, '--no-' + argName);
|
159 | }
|
160 |
|
161 | function getBooleanArg(rawArgs, argName) {
|
162 | if ((_lodash || _load_lodash()).default.includes(rawArgs, '--' + argName)) {
|
163 | return true;
|
164 | } else {
|
165 | return false;
|
166 | }
|
167 | }
|
168 |
|
169 | function 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 |
|
175 | exports.default = {
|
176 | addOptions: addOptions,
|
177 | handleMobileOptsAsync: handleMobileOptsAsync,
|
178 | printQRCode: printQRCode,
|
179 | optsAsync: optsAsync
|
180 | };
|
181 | module.exports = exports['default'];
|
182 |
|