UNPKG

7.31 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 _taggedTemplateLiteral2;
14
15function _load_taggedTemplateLiteral() {
16 return _taggedTemplateLiteral2 = _interopRequireDefault(require('babel-runtime/helpers/taggedTemplateLiteral'));
17}
18
19var _asyncToGenerator2;
20
21function _load_asyncToGenerator() {
22 return _asyncToGenerator2 = _interopRequireDefault(require('babel-runtime/helpers/asyncToGenerator'));
23}
24
25var action = function () {
26 var _ref = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)( /*#__PURE__*/(_regenerator || _load_regenerator()).default.mark(function _callee(projectDir, options) {
27 var root, startOpts, devToolsUrl, url, recipient, _ref2, exp, nonInteractive;
28
29 return (_regenerator || _load_regenerator()).default.wrap(function _callee$(_context) {
30 while (1) {
31 switch (_context.prev = _context.next) {
32 case 0:
33 (0, (_exit || _load_exit()).installExitHooks)(projectDir);
34
35 _context.next = 3;
36 return (_urlOpts || _load_urlOpts()).default.optsAsync(projectDir, options);
37
38 case 3:
39
40 (0, (_log || _load_log()).default)((_chalk || _load_chalk()).default.gray('Starting project at', projectDir));
41
42 root = _path.default.resolve(projectDir);
43 startOpts = {};
44
45 if (options.clear) {
46 startOpts.reset = true;
47 }
48
49 if (options.maxWorkers) {
50 startOpts.maxWorkers = options.maxWorkers;
51 }
52
53 _context.next = 10;
54 return (_devTools || _load_devTools()).DevToolsServer.startAsync(root);
55
56 case 10:
57 devToolsUrl = _context.sent;
58 _context.next = 13;
59 return (_xdl || _load_xdl()).Project.startAsync(root, startOpts);
60
61 case 13:
62 _context.next = 15;
63 return (_xdl || _load_xdl()).UrlUtils.constructManifestUrlAsync(projectDir);
64
65 case 15:
66 url = _context.sent;
67 _context.next = 18;
68 return (_sendTo || _load_sendTo()).default.getRecipient(options.sendTo);
69
70 case 18:
71 recipient = _context.sent;
72
73 if (!recipient) {
74 _context.next = 22;
75 break;
76 }
77
78 _context.next = 22;
79 return (_sendTo || _load_sendTo()).default.sendUrlAsync(url, recipient);
80
81 case 22:
82 _context.next = 24;
83 return (_urlOpts || _load_urlOpts()).default.handleMobileOptsAsync(projectDir, options);
84
85 case 24:
86 _context.next = 26;
87 return (_xdl || _load_xdl()).ProjectUtils.readConfigJsonAsync(projectDir);
88
89 case 26:
90 _ref2 = _context.sent;
91 exp = _ref2.exp;
92
93
94 (0, (_log || _load_log()).default)('Expo DevTools is running at ' + (_chalk || _load_chalk()).default.underline(devToolsUrl));
95 nonInteractive = options.parent && options.parent.nonInteractive;
96
97 if (!(!nonInteractive && !exp.isDetached)) {
98 _context.next = 43;
99 break;
100 }
101
102 _context.next = 33;
103 return (_xdl || _load_xdl()).UserSettings.getAsync('openDevToolsAtStartup', true);
104
105 case 33:
106 if (!_context.sent) {
107 _context.next = 38;
108 break;
109 }
110
111 (0, (_log || _load_log()).default)('Opening DevTools in the browser... (press ' + (_chalk || _load_chalk()).default.bold(_templateObject) + ' to disable)');
112 (0, (_opn || _load_opn()).default)(devToolsUrl, { wait: false });
113 _context.next = 39;
114 break;
115
116 case 38:
117 (0, (_log || _load_log()).default)('Press ' + (_chalk || _load_chalk()).default.bold(_templateObject2) + ' to open DevTools now, or ' + (_chalk || _load_chalk()).default.bold(_templateObject) + ' to always open it automatically.');
118
119 case 39:
120 _context.next = 41;
121 return (_TerminalUI || _load_TerminalUI()).startAsync(projectDir);
122
123 case 41:
124 _context.next = 45;
125 break;
126
127 case 43:
128 if (!exp.isDetached) {
129 (_log || _load_log()).default.newLine();
130 (_urlOpts || _load_urlOpts()).default.printQRCode(url);
131 }
132 (0, (_log || _load_log()).default)('Your app is running at ' + (_chalk || _load_chalk()).default.underline(url));
133
134 case 45:
135
136 (_log || _load_log()).default.nested((_chalk || _load_chalk()).default.green('Logs for your project will appear below. Press Ctrl+C to exit.'));
137
138 case 46:
139 case 'end':
140 return _context.stop();
141 }
142 }
143 }, _callee, this);
144 }));
145
146 return function action(_x, _x2) {
147 return _ref.apply(this, arguments);
148 };
149}();
150
151var _templateObject = (0, (_taggedTemplateLiteral2 || _load_taggedTemplateLiteral()).default)(['shift-d'], ['shift-d']),
152 _templateObject2 = (0, (_taggedTemplateLiteral2 || _load_taggedTemplateLiteral()).default)(['d'], ['d']);
153
154var _devTools;
155
156function _load_devTools() {
157 return _devTools = require('@expo/dev-tools');
158}
159
160var _xdl;
161
162function _load_xdl() {
163 return _xdl = require('xdl');
164}
165
166var _chalk;
167
168function _load_chalk() {
169 return _chalk = _interopRequireDefault(require('chalk'));
170}
171
172var _opn;
173
174function _load_opn() {
175 return _opn = _interopRequireDefault(require('opn'));
176}
177
178var _path = _interopRequireDefault(require('path'));
179
180var _prompt;
181
182function _load_prompt() {
183 return _prompt = _interopRequireDefault(require('../prompt'));
184}
185
186var _log;
187
188function _load_log() {
189 return _log = _interopRequireDefault(require('../log'));
190}
191
192var _sendTo;
193
194function _load_sendTo() {
195 return _sendTo = _interopRequireDefault(require('../sendTo'));
196}
197
198var _exit;
199
200function _load_exit() {
201 return _exit = require('../exit');
202}
203
204var _urlOpts;
205
206function _load_urlOpts() {
207 return _urlOpts = _interopRequireDefault(require('../urlOpts'));
208}
209
210var _TerminalUI;
211
212function _load_TerminalUI() {
213 return _TerminalUI = _interopRequireWildcard(require('./start/TerminalUI'));
214}
215
216function _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)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
217
218function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
219
220exports.default = function (program) {
221 program.command('start [project-dir]').alias('r').description('Starts or restarts a local server for your app and gives you a URL to it').option('-s, --send-to [dest]', 'A phone number or e-mail address to send a link to').option('-c, --clear', 'Clear the React Native packager cache')
222 // TODO(anp) set a default for this dynamically based on whether we're inside a container?
223 .option('--max-workers [num]', 'Maximum number of tasks to allow Metro to spawn.').urlOpts().allowOffline().asyncActionProjectDir(action, true, true);
224};
225
226module.exports = exports['default'];
227//# sourceMappingURL=../__sourcemaps__/expo_commands/start.js.map