create-expo-stack 2.0.17 → 2.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/cli.js CHANGED
@@ -53,7 +53,6 @@ function run(argv) {
53
53
  matching: 'create-expo-stack-*',
54
54
  hidden: true,
55
55
  })
56
- .help() // provides default for help, h, --help, -h
57
56
  .version() // provides default for version, v, --version, -v
58
57
  .create();
59
58
  return [4 /*yield*/, cli.run(argv)
@@ -68,4 +67,4 @@ function run(argv) {
68
67
  });
69
68
  }
70
69
  module.exports = { run: run };
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUErQjtBQUUvQjs7R0FFRztBQUNILFNBQWUsR0FBRyxDQUFDLElBQUk7Ozs7OztvQkFFZixHQUFHLEdBQUcsSUFBQSxlQUFLLEdBQUU7eUJBQ2hCLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQzt5QkFDMUIsR0FBRyxDQUFDLFNBQVMsQ0FBQzt5QkFDZCxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7d0JBQ3pCLFFBQVEsRUFBRSxxQkFBcUI7d0JBQy9CLE1BQU0sRUFBRSxJQUFJO3FCQUNiLENBQUM7eUJBQ0QsSUFBSSxFQUFFLENBQUMsMkNBQTJDO3lCQUNsRCxPQUFPLEVBQUUsQ0FBQyxpREFBaUQ7eUJBQzNELE1BQU0sRUFBRSxDQUFBO29CQUtLLHFCQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO3dCQUVuQyxxQ0FBcUM7c0JBRkY7O29CQUE3QixPQUFPLEdBQUcsU0FBbUI7b0JBRW5DLHFDQUFxQztvQkFDckMsc0JBQU8sT0FBTyxFQUFBOzs7O0NBQ2Y7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxLQUFBLEVBQUUsQ0FBQSJ9
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUErQjtBQUUvQjs7R0FFRztBQUNILFNBQWUsR0FBRyxDQUFDLElBQUk7Ozs7OztvQkFFZixHQUFHLEdBQUcsSUFBQSxlQUFLLEdBQUU7eUJBQ2hCLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQzt5QkFDMUIsR0FBRyxDQUFDLFNBQVMsQ0FBQzt5QkFDZCxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7d0JBQ3pCLFFBQVEsRUFBRSxxQkFBcUI7d0JBQy9CLE1BQU0sRUFBRSxJQUFJO3FCQUNiLENBQUM7eUJBQ0QsT0FBTyxFQUFFLENBQUMsaURBQWlEO3lCQUMzRCxNQUFNLEVBQUUsQ0FBQTtvQkFLSyxxQkFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQzt3QkFFbkMscUNBQXFDO3NCQUZGOztvQkFBN0IsT0FBTyxHQUFHLFNBQW1CO29CQUVuQyxxQ0FBcUM7b0JBQ3JDLHNCQUFPLE9BQU8sRUFBQTs7OztDQUNmO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsS0FBQSxFQUFFLENBQUEifQ==
@@ -35,220 +35,53 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
35
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
36
  }
37
37
  };
38
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
39
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
40
- if (ar || !(i in from)) {
41
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
42
- ar[i] = from[i];
43
- }
44
- }
45
- return to.concat(ar || Array.prototype.slice.call(from));
46
- };
47
38
  Object.defineProperty(exports, "__esModule", { value: true });
48
- var gluegun_1 = require("gluegun");
49
- var gradient = require("gradient-string");
50
- var figlet = require("figlet");
51
- var getUserPackageManager_1 = require("../utilities/getUserPackageManager");
52
- var DEFAULT_APP_NAME = "myExpoApp";
53
- var TITLE_TEXT = "create expo stack";
54
- var availablePackages = ["nativewind", "react-navigation", "expo-router"];
55
- var defaultOptions = {
56
- projectName: DEFAULT_APP_NAME,
57
- packages: [],
58
- flags: {
59
- noGit: false,
60
- noInstall: false,
61
- importAlias: "~/",
62
- },
63
- };
39
+ var utilities_1 = require("../utilities");
40
+ var constants_1 = require("../constants");
64
41
  var command = {
65
42
  name: 'create-expo-stack',
66
- description: 'A CLI to create a new Expo project with the stack of your choice.',
43
+ description: 'Create a new Expo project',
67
44
  run: function (toolbox) { return __awaiter(void 0, void 0, void 0, function () {
68
- function runCLI() {
69
- return __awaiter(this, void 0, void 0, function () {
70
- var cliResults, askName, name_1, useTypescript, askNavigation, askNavigationType, navigationSelect, navigationTypeSelect, useNativewind;
71
- return __generator(this, function (_a) {
72
- switch (_a.label) {
73
- case 0:
74
- cliResults = defaultOptions;
75
- if (!first) return [3 /*break*/, 1];
76
- cliResults.projectName = first;
77
- return [3 /*break*/, 3];
78
- case 1:
79
- askName = {
80
- type: 'input',
81
- name: 'name',
82
- message: "What do you want to name your project? (".concat(DEFAULT_APP_NAME, ")"),
83
- };
84
- return [4 /*yield*/, ask(askName)];
85
- case 2:
86
- name_1 = (_a.sent()).name;
87
- cliResults.projectName = name_1 || DEFAULT_APP_NAME;
88
- _a.label = 3;
89
- case 3:
90
- // Clear default packages
91
- cliResults.packages = [];
92
- return [4 /*yield*/, confirm('Would you like to use TypeScript with this project?', true)];
93
- case 4:
94
- useTypescript = _a.sent();
95
- if (useTypescript) {
96
- success('Good call, now using TypeScript! 🚀');
97
- }
98
- else {
99
- success("Wrong answer, we're gonna use Typescript.");
100
- }
101
- askNavigation = {
102
- type: 'select',
103
- name: 'navigationSelect',
104
- message: 'What would you like to use for Navigation?',
105
- choices: ['React Navigation', 'Expo Router', 'None'],
106
- };
107
- askNavigationType = {
108
- type: 'select',
109
- name: 'navigationTypeSelect',
110
- message: 'What type of navigation would you like to use?',
111
- choices: ['Stack', 'Tabs'],
112
- };
113
- return [4 /*yield*/, ask(askNavigation)];
114
- case 5:
115
- navigationSelect = (_a.sent()).navigationSelect;
116
- if (!(navigationSelect !== 'None')) return [3 /*break*/, 7];
117
- return [4 /*yield*/, ask(askNavigationType)];
118
- case 6:
119
- navigationTypeSelect = (_a.sent()).navigationTypeSelect;
120
- if (navigationSelect === 'React Navigation') {
121
- cliResults.packages.push({ name: "react-navigation", type: 'navigation', options: navigationTypeSelect.toLowerCase() });
122
- }
123
- else {
124
- cliResults.packages.push({ name: "expo-router", type: 'navigation', options: navigationTypeSelect.toLowerCase() });
125
- }
126
- success("Great, we'll use ".concat(navigationSelect, "!"));
127
- return [3 /*break*/, 8];
128
- case 7:
129
- success("No problem, skipping navigation for now.");
130
- _a.label = 8;
131
- case 8: return [4 /*yield*/, confirm('Would you like to use NativeWind (Tailwind for RN) with this project?', true)];
132
- case 9:
133
- useNativewind = _a.sent();
134
- if (useNativewind) {
135
- cliResults.packages.push({ name: "nativewind", type: 'styling', options: {} });
136
- success("You'll be styling with ease using Tailwind.");
137
- }
138
- else {
139
- success("Sounds good, you can use StyleSheet instead.");
140
- }
141
- return [2 /*return*/, cliResults];
142
- }
143
- });
144
- });
145
- }
146
- function usePackage(packageName, packages) {
147
- return packages.find(function (p) { return p.name === packageName; }) ? true : false;
148
- }
149
- // TODO: add bun support
150
- function getPackageManager() {
151
- if (options.npm)
152
- return 'npm';
153
- if (options.yarn)
154
- return 'yarn';
155
- if (options.pnpm)
156
- return 'pnpm';
157
- var packageManager = (0, getUserPackageManager_1.getUserPackageManager)();
158
- return packageManager;
159
- }
160
- function renderTitle() {
161
- return __awaiter(this, void 0, void 0, function () {
162
- var cesGradient;
163
- return __generator(this, function (_a) {
164
- switch (_a.label) {
165
- case 0:
166
- cesGradient = gradient(Object.values(poimandresTheme));
167
- return [4 /*yield*/, figlet.text(TITLE_TEXT, {
168
- font: "Standard",
169
- horizontalLayout: "default",
170
- verticalLayout: "default",
171
- width: 80,
172
- whitespaceBreak: true,
173
- }, function (err, data) {
174
- if (err) {
175
- console.log("Something went wrong...");
176
- console.dir(err);
177
- return;
178
- }
179
- info("");
180
- info("");
181
- console.log(cesGradient.multiline(data));
182
- info("");
183
- info("");
184
- })];
185
- case 1:
186
- _a.sent();
187
- return [2 /*return*/];
188
- }
189
- });
190
- });
191
- }
192
- var _a, first, options, generate, _b, info, success, _c, ask, confirm, poimandresTheme, cliResults, projectName, askName, name_2, projectName_1, packages_1, flags_1, useNativewind_1, navigationPackage_1, baseFiles, files, nativewindFiles, reactNavigationFiles, expoRouterFiles, formattedFiles, packageManager, error_1;
193
- return __generator(this, function (_d) {
194
- switch (_d.label) {
45
+ var _a, first, options, _b, info, highlight, warning, cliResults, useDefault, skipCLI, useBlankTypescript, packages, useNativewind, navigationPackage, files, formattedFiles, error_1;
46
+ return __generator(this, function (_c) {
47
+ switch (_c.label) {
195
48
  case 0:
196
- _a = toolbox.parameters, first = _a.first, options = _a.options, generate = toolbox.template.generate, _b = toolbox.print, info = _b.info, success = _b.success, _c = toolbox.prompt, ask = _c.ask, confirm = _c.confirm;
197
- poimandresTheme = {
198
- orange: "#f97316",
199
- between: "f2940f",
200
- yellow: "#eab308",
201
- };
202
- ;
203
- _d.label = 1;
49
+ _a = toolbox.parameters, first = _a.first, options = _a.options, _b = toolbox.print, info = _b.info, highlight = _b.highlight, warning = _b.warning;
50
+ if (options.help || options.h) {
51
+ (0, utilities_1.showHelp)(info, highlight, warning);
52
+ return [2 /*return*/];
53
+ }
54
+ _c.label = 1;
204
55
  case 1:
205
- _d.trys.push([1, 17, , 18]);
206
- return [4 /*yield*/, renderTitle()];
56
+ _c.trys.push([1, 10, , 11]);
57
+ return [4 /*yield*/, (0, utilities_1.renderTitle)(toolbox)];
207
58
  case 2:
208
- _d.sent();
209
- // set timeout for 1 second
59
+ _c.sent();
60
+ // TODO: this is hacky, figure out a way to do this better
61
+ // set timeout for 1 second so that the title can render before the CLI runs
210
62
  return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 200); })];
211
63
  case 3:
212
- // set timeout for 1 second
213
- _d.sent();
214
- cliResults = defaultOptions;
215
- if (!options.ignite) return [3 /*break*/, 8];
216
- projectName = void 0;
217
- if (!!first) return [3 /*break*/, 5];
218
- askName = {
219
- type: 'input',
220
- name: 'name',
221
- message: "What do you want to name your project? (".concat(DEFAULT_APP_NAME, ")"),
222
- };
223
- return [4 /*yield*/, ask(askName)
224
- // if name is undefined or empty string, use default name
225
- ];
64
+ // TODO: this is hacky, figure out a way to do this better
65
+ // set timeout for 1 second so that the title can render before the CLI runs
66
+ _c.sent();
67
+ cliResults = constants_1.defaultOptions;
68
+ if (!options.ignite) return [3 /*break*/, 5];
69
+ return [4 /*yield*/, (0, utilities_1.runIgnite)(toolbox)];
226
70
  case 4:
227
- name_2 = (_d.sent()).name;
228
- // if name is undefined or empty string, use default name
229
- projectName = name_2 || DEFAULT_APP_NAME;
230
- return [3 /*break*/, 6];
71
+ _c.sent();
72
+ return [3 /*break*/, 9];
231
73
  case 5:
232
- projectName = first;
233
- _d.label = 6;
74
+ useDefault = ((options.default !== undefined && options.default) || (options.d !== undefined && options.d));
75
+ skipCLI = options.nonInteractive;
76
+ useBlankTypescript = options.blank || false;
77
+ if (!!(useDefault || skipCLI || useBlankTypescript)) return [3 /*break*/, 7];
78
+ return [4 /*yield*/, (0, utilities_1.runCLI)(toolbox)];
234
79
  case 6:
235
- success('Running Ignite CLI to create an opinionated stack...');
236
- return [4 /*yield*/, gluegun_1.system.spawn("npx ignite-cli@latest new ".concat(projectName).concat(options.default && " --yes"), {
237
- shell: true,
238
- stdio: 'inherit',
239
- })];
240
- case 7:
241
- _d.sent();
242
- return [3 /*break*/, 16];
243
- case 8:
244
- if (!((options.default !== undefined && !options.default) || !options.nonInteractive)) return [3 /*break*/, 10];
245
- return [4 /*yield*/, runCLI()];
246
- case 9:
247
80
  // Run the CLI to prompt the user for input
248
- cliResults = _d.sent();
249
- _d.label = 10;
250
- case 10:
251
- // [Internal] Update the cliResults with the options passed in via the command
81
+ cliResults = _c.sent();
82
+ _c.label = 7;
83
+ case 7:
84
+ // @internal Update the cliResults with the options passed in via the command
252
85
  // This is used for testing purposes only
253
86
  if (options.reactNavigation) {
254
87
  // Add react-navigation package
@@ -274,193 +107,30 @@ var command = {
274
107
  if (first) {
275
108
  cliResults.projectName = first;
276
109
  }
277
- projectName_1 = cliResults.projectName, packages_1 = cliResults.packages, flags_1 = cliResults.flags;
278
- useNativewind_1 = usePackage("nativewind", packages_1);
279
- navigationPackage_1 = packages_1.find(function (p) { return p.type === "navigation"; }) || undefined;
280
- baseFiles = [
281
- 'base/assets/adaptive-icon.png',
282
- 'base/assets/favicon.png',
283
- 'base/assets/icon.png',
284
- 'base/assets/splash.png',
285
- 'base/tsconfig.json.ejs',
286
- 'base/app.json.ejs',
287
- 'base/App.tsx.ejs',
288
- 'base/babel.config.js.ejs',
289
- 'base/package.json.ejs',
290
- 'base/.gitignore.ejs',
291
- ];
292
- files = __spreadArray([], baseFiles, true);
293
- // add nativewind files if needed
294
- // modify base files with nativewind specifications
295
- if (useNativewind_1) {
296
- nativewindFiles = [
297
- 'packages/nativewind/tailwind.config.js.ejs',
298
- 'packages/nativewind/app.d.ts',
299
- ];
300
- files = __spreadArray(__spreadArray([], files, true), nativewindFiles, true);
301
- }
302
- ;
303
- // add react navigation files if needed
304
- // modify base files with react navigation specifications
305
- if ((navigationPackage_1 === null || navigationPackage_1 === void 0 ? void 0 : navigationPackage_1.name) === "react-navigation") {
306
- reactNavigationFiles = [
307
- 'packages/react-navigation/App.tsx.ejs',
308
- 'packages/react-navigation/navigation/index.tsx.ejs',
309
- ];
310
- // if it's a stack, add the stack files) {
311
- if (navigationPackage_1.options === "stack") {
312
- reactNavigationFiles = __spreadArray(__spreadArray([], reactNavigationFiles, true), [
313
- 'packages/react-navigation/screens/details.tsx.ejs',
314
- 'packages/react-navigation/screens/overview.tsx.ejs',
315
- ], false);
316
- }
317
- else {
318
- // it's a tab navigator
319
- reactNavigationFiles = __spreadArray(__spreadArray([], reactNavigationFiles, true), [
320
- 'packages/react-navigation/components/edit-screen-info.tsx.ejs',
321
- 'packages/react-navigation/navigation/tab-navigator.tsx.ejs',
322
- 'packages/react-navigation/screens/modal.tsx.ejs',
323
- 'packages/react-navigation/screens/one.tsx.ejs',
324
- 'packages/react-navigation/screens/two.tsx.ejs',
325
- ], false);
326
- }
327
- // Remove the base App.tsx.ejs file since we'll be using the one from react-navigation
328
- files = files.filter(function (file) { return file !== 'base/App.tsx.ejs'; });
329
- files = __spreadArray(__spreadArray([], files, true), reactNavigationFiles, true);
330
- }
331
- // add expo router files if needed
332
- // modify base files with expo router specifications
333
- if ((navigationPackage_1 === null || navigationPackage_1 === void 0 ? void 0 : navigationPackage_1.name) === "expo-router") {
334
- expoRouterFiles = [
335
- 'packages/expo-router/expo-env.d.ts',
336
- 'packages/expo-router/metro.config.js',
337
- 'packages/expo-router/index.ts'
338
- ];
339
- // if it's a stack, add the stack files) {
340
- if (navigationPackage_1.options === "stack") {
341
- expoRouterFiles = __spreadArray(__spreadArray([], expoRouterFiles, true), [
342
- 'packages/expo-router/stack/app/_layout.tsx.ejs',
343
- 'packages/expo-router/stack/app/details.tsx.ejs',
344
- 'packages/expo-router/stack/app/index.tsx.ejs',
345
- ], false);
346
- }
347
- else {
348
- // it's a tab navigator
349
- expoRouterFiles = __spreadArray(__spreadArray([], expoRouterFiles, true), [
350
- 'packages/expo-router/tabs/app/(tabs)/_layout.tsx.ejs',
351
- 'packages/expo-router/tabs/app/(tabs)/index.tsx.ejs',
352
- 'packages/expo-router/tabs/app/(tabs)/two.tsx.ejs',
353
- 'packages/expo-router/tabs/app/_layout.tsx.ejs',
354
- 'packages/expo-router/tabs/app/modal.tsx.ejs',
355
- 'packages/expo-router/tabs/components/edit-screen-info.tsx.ejs',
356
- ], false);
357
- }
358
- // Remove the base App.tsx.ejs file since we'll be using index.tsx from expo-router
359
- files = files.filter(function (file) { return file !== 'base/App.tsx.ejs'; });
360
- files = __spreadArray(__spreadArray([], files, true), expoRouterFiles, true);
361
- }
110
+ packages = cliResults.packages;
111
+ useNativewind = (0, utilities_1.usePackage)("nativewind", packages);
112
+ navigationPackage = packages.find(function (p) { return p.type === "navigation"; }) || undefined;
113
+ files = [];
114
+ files = (0, utilities_1.configureProjectFiles)(files, navigationPackage, useNativewind);
362
115
  formattedFiles = [];
363
- formattedFiles = files.reduce(function (prev, file) {
364
- var template = file;
365
- var target = "".concat(projectName_1, "/") + file.replace('.ejs', '').replace('base/', '');
366
- if (useNativewind_1) {
367
- target = target.replace('packages/nativewind/', '');
368
- }
369
- if ((navigationPackage_1 === null || navigationPackage_1 === void 0 ? void 0 : navigationPackage_1.name) === "react-navigation") {
370
- target = target.replace('packages/react-navigation/App.tsx', 'App.tsx');
371
- target = target.replace('packages/react-navigation/', 'src/');
372
- }
373
- if ((navigationPackage_1 === null || navigationPackage_1 === void 0 ? void 0 : navigationPackage_1.name) === "expo-router") {
374
- target = target.replace('packages/expo-router/', '');
375
- if (navigationPackage_1.options === "stack") {
376
- target = target.replace('stack/', '');
377
- }
378
- if (navigationPackage_1.options === "tabs") {
379
- target = target.replace('tabs/', '');
380
- }
381
- }
382
- var gen = generate({
383
- template: template,
384
- target: './' + target,
385
- props: {
386
- projectName: projectName_1,
387
- packages: packages_1,
388
- flags: flags_1,
389
- useNativewind: useNativewind_1,
390
- navigationPackage: navigationPackage_1,
391
- },
392
- });
393
- return prev.concat([gen]);
394
- }, formattedFiles);
395
- // Output the results to the user
396
- info("");
397
- info("Initializing your project...");
398
- info("");
399
- return [4 /*yield*/, Promise.all(formattedFiles)];
400
- case 11:
401
- _d.sent();
402
- packageManager = getPackageManager();
403
- if (!(!options.noInstall && !flags_1.noInstall)) return [3 /*break*/, 13];
404
- info("");
405
- info("Installing dependencies using ".concat(packageManager, "..."));
406
- info("");
407
- // install with yarn or npm i
408
- return [4 /*yield*/, gluegun_1.system.spawn("cd ".concat(projectName_1, " && ").concat(packageManager, " install --silent && ").concat(packageManager, " run --quiet format"), {
409
- shell: true,
410
- stdio: 'inherit',
411
- })];
412
- case 12:
413
- // install with yarn or npm i
414
- _d.sent();
415
- _d.label = 13;
416
- case 13:
417
- if (!(!options.noGit && !flags_1.noGit)) return [3 /*break*/, 15];
418
- info("");
419
- info("Initializing git...");
420
- info("");
421
- // initialize git repo and add first commit
422
- return [4 /*yield*/, gluegun_1.system.spawn("cd ".concat(projectName_1, " && git init --quiet && git add . && git commit -m \"Initial commit\" -m \"Generated by create-expo-stack 2.0.0.\" --quiet"), {
423
- shell: true,
424
- stdio: 'inherit',
425
- })];
426
- case 14:
427
- // initialize git repo and add first commit
428
- _d.sent();
429
- _d.label = 15;
430
- case 15:
431
- ;
432
- success('Success! 🎉 Now, just run the following to get started: ');
433
- info("");
434
- info("cd ".concat(projectName_1));
435
- if (packageManager === 'npm') {
436
- if (options.noInstall)
437
- info('npm install');
438
- info('npm run ios');
439
- }
440
- else if (packageManager === 'pnpm') {
441
- if (options.noInstall)
442
- info('pnpm install');
443
- info('pnpm run ios');
444
- }
445
- else {
446
- if (options.noInstall)
447
- info('yarn install');
448
- info('yarn ios');
449
- }
450
- info("");
451
- _d.label = 16;
452
- case 16: return [3 /*break*/, 18];
453
- case 17:
454
- error_1 = _d.sent();
116
+ formattedFiles = (0, utilities_1.generateProjectFiles)(cliResults, files, formattedFiles, navigationPackage, toolbox, useNativewind);
117
+ return [4 /*yield*/, (0, utilities_1.printOutput)(cliResults, formattedFiles, toolbox)];
118
+ case 8:
119
+ _c.sent();
120
+ _c.label = 9;
121
+ case 9: return [3 /*break*/, 11];
122
+ case 10:
123
+ error_1 = _c.sent();
455
124
  // TODO: delete all files
456
125
  info("Oops, something went wrong while creating your project \uD83D\uDE22");
457
- console.error(error_1);
126
+ info('');
127
+ info("Error: ".concat(error_1));
458
128
  info("\nIf this was unexpected, please open an issue: https://github.com/danstepanov/create-expo-stack#reporting-bugs--feedback");
459
- return [3 /*break*/, 18];
460
- case 18: return [2 /*return*/];
129
+ return [3 /*break*/, 11];
130
+ case 11: return [2 /*return*/];
461
131
  }
462
132
  });
463
133
  }); },
464
134
  };
465
135
  exports.default = command;
466
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBZ0Q7QUFDaEQsMENBQTZDO0FBQzdDLCtCQUFrQztBQUVsQyw0RUFBMkU7QUFFM0UsSUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUM7QUFFckMsSUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQUM7QUFRdkMsSUFBTSxpQkFBaUIsR0FBRyxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxhQUFhLENBQVUsQ0FBQztBQWdCckYsSUFBTSxjQUFjLEdBQWU7SUFDakMsV0FBVyxFQUFFLGdCQUFnQjtJQUM3QixRQUFRLEVBQUUsRUFBRTtJQUNaLEtBQUssRUFBRTtRQUNMLEtBQUssRUFBRSxLQUFLO1FBQ1osU0FBUyxFQUFFLEtBQUs7UUFDaEIsV0FBVyxFQUFFLElBQUk7S0FDbEI7Q0FDRixDQUFDO0FBRUYsSUFBTSxPQUFPLEdBQW1CO0lBQzlCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsV0FBVyxFQUFFLG1FQUFtRTtJQUNoRixHQUFHLEVBQUUsVUFBTyxPQUFPO1FBUWpCLFNBQWUsTUFBTTs7Ozs7OzRCQUdmLFVBQVUsR0FBRyxjQUFjLENBQUM7aUNBRzVCLEtBQUssRUFBTCx3QkFBSzs0QkFDUCxVQUFVLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQzs7OzRCQUV6QixPQUFPLEdBQUc7Z0NBQ2QsSUFBSSxFQUFFLE9BQU87Z0NBQ2IsSUFBSSxFQUFFLE1BQU07Z0NBQ1osT0FBTyxFQUFFLGtEQUEyQyxnQkFBZ0IsTUFBRzs2QkFDeEUsQ0FBQTs0QkFDZ0IscUJBQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFBOzs0QkFBM0IsU0FBUyxDQUFBLFNBQWtCLENBQUEsS0FBdkI7NEJBQ1osVUFBVSxDQUFDLFdBQVcsR0FBRyxNQUFJLElBQUksZ0JBQWdCLENBQUM7Ozs0QkFHcEQseUJBQXlCOzRCQUN6QixVQUFVLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQzs0QkFFSCxxQkFBTSxPQUFPLENBQ2pDLHFEQUFxRCxFQUNyRCxJQUFJLENBQ0wsRUFBQTs7NEJBSEssYUFBYSxHQUFHLFNBR3JCOzRCQUVELElBQUksYUFBYSxFQUFFO2dDQUNqQixPQUFPLENBQUMscUNBQXFDLENBQUMsQ0FBQTs2QkFDL0M7aUNBQU07Z0NBQ0wsT0FBTyxDQUFDLDJDQUEyQyxDQUFDLENBQUE7NkJBQ3JEOzRCQUdLLGFBQWEsR0FBRztnQ0FDcEIsSUFBSSxFQUFFLFFBQVE7Z0NBQ2QsSUFBSSxFQUFFLGtCQUFrQjtnQ0FDeEIsT0FBTyxFQUFFLDRDQUE0QztnQ0FDckQsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQzs2QkFDckQsQ0FBQTs0QkFFSyxpQkFBaUIsR0FBRztnQ0FDeEIsSUFBSSxFQUFFLFFBQVE7Z0NBQ2QsSUFBSSxFQUFFLHNCQUFzQjtnQ0FDNUIsT0FBTyxFQUFFLGdEQUFnRDtnQ0FDekQsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQzs2QkFDM0IsQ0FBQTs0QkFFNEIscUJBQU0sR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFBOzs0QkFBN0MsZ0JBQWdCLEdBQUssQ0FBQSxTQUF3QixDQUFBLGlCQUE3QjtpQ0FFcEIsQ0FBQSxnQkFBZ0IsS0FBSyxNQUFNLENBQUEsRUFBM0Isd0JBQTJCOzRCQUNJLHFCQUFNLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFBOzs0QkFBckQsb0JBQW9CLEdBQUssQ0FBQSxTQUE0QixDQUFBLHFCQUFqQzs0QkFDNUIsSUFBSSxnQkFBZ0IsS0FBSyxrQkFBa0IsRUFBRTtnQ0FDM0MsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsb0JBQW9CLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDOzZCQUN6SDtpQ0FBTTtnQ0FDTCxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsb0JBQW9CLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDOzZCQUNwSDs0QkFDRCxPQUFPLENBQUMsMkJBQW9CLGdCQUFnQixNQUFHLENBQUMsQ0FBQTs7OzRCQUVoRCxPQUFPLENBQUMsMENBQTBDLENBQUMsQ0FBQTs7Z0NBRy9CLHFCQUFNLE9BQU8sQ0FDakMsdUVBQXVFLEVBQ3ZFLElBQUksQ0FDTCxFQUFBOzs0QkFISyxhQUFhLEdBQUcsU0FHckI7NEJBRUQsSUFBSSxhQUFhLEVBQUU7Z0NBQ2pCLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dDQUMvRSxPQUFPLENBQUMsNkNBQTZDLENBQUMsQ0FBQTs2QkFDdkQ7aUNBQU07Z0NBQ0wsT0FBTyxDQUFDLDhDQUE4QyxDQUFDLENBQUE7NkJBQ3hEOzRCQUVELHNCQUFPLFVBQVUsRUFBQzs7OztTQUNuQjtRQUVELFNBQVMsVUFBVSxDQUFDLFdBQW1CLEVBQUUsUUFBNkI7WUFDcEUsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxXQUFXLEVBQXRCLENBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckUsQ0FBQztRQUVELHdCQUF3QjtRQUN4QixTQUFTLGlCQUFpQjtZQUN4QixJQUFJLE9BQU8sQ0FBQyxHQUFHO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBQzlCLElBQUksT0FBTyxDQUFDLElBQUk7Z0JBQUUsT0FBTyxNQUFNLENBQUM7WUFDaEMsSUFBSSxPQUFPLENBQUMsSUFBSTtnQkFBRSxPQUFPLE1BQU0sQ0FBQztZQUVoQyxJQUFNLGNBQWMsR0FBRyxJQUFBLDZDQUFxQixHQUFFLENBQUM7WUFFL0MsT0FBTyxjQUFjLENBQUE7UUFDdkIsQ0FBQztRQVNELFNBQWUsV0FBVzs7Ozs7OzRCQUNsQixXQUFXLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQzs0QkFFN0QscUJBQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7b0NBQzVCLElBQUksRUFBRSxVQUFVO29DQUNoQixnQkFBZ0IsRUFBRSxTQUFTO29DQUMzQixjQUFjLEVBQUUsU0FBUztvQ0FDekIsS0FBSyxFQUFFLEVBQUU7b0NBQ1QsZUFBZSxFQUFFLElBQUk7aUNBQ3RCLEVBQ0MsVUFBQyxHQUFHLEVBQUUsSUFBSTtvQ0FDUixJQUFJLEdBQUcsRUFBRTt3Q0FDUCxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7d0NBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7d0NBQ2pCLE9BQU87cUNBQ1I7b0NBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29DQUNULElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztvQ0FDVCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQ0FDekMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29DQUNULElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQ0FDWCxDQUFDLENBQ0YsRUFBQTs7NEJBbkJELFNBbUJDLENBQUE7Ozs7O1NBQ0Y7Ozs7O29CQS9IQyxLQUlFLE9BQU8sV0FKcUIsRUFBaEIsS0FBSyxXQUFBLEVBQUUsT0FBTyxhQUFBLEVBQ2hCLFFBQVEsR0FHbEIsT0FBTyxrQkFIVyxFQUNwQixLQUVFLE9BQU8sTUFGZSxFQUFmLElBQUksVUFBQSxFQUFFLE9BQU8sYUFBQSxFQUN0QixLQUNFLE9BQU8sT0FEZSxFQUFkLEdBQUcsU0FBQSxFQUFFLE9BQU8sYUFBQSxDQUNiO29CQThGTCxlQUFlLEdBQUc7d0JBQ3RCLE1BQU0sRUFBRSxTQUFTO3dCQUNqQixPQUFPLEVBQUUsUUFBUTt3QkFDakIsTUFBTSxFQUFFLFNBQVM7cUJBQ2xCLENBQUM7b0JBeUJELENBQUM7Ozs7b0JBR0EscUJBQU0sV0FBVyxFQUFFLEVBQUE7O29CQUFuQixTQUFtQixDQUFDO29CQUNwQiwyQkFBMkI7b0JBQzNCLHFCQUFNLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxJQUFLLE9BQUEsVUFBVSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBeEIsQ0FBd0IsQ0FBQyxFQUFBOztvQkFEeEQsMkJBQTJCO29CQUMzQixTQUF3RCxDQUFDO29CQUVyRCxVQUFVLEdBQWUsY0FBYyxDQUFDO3lCQUd4QyxPQUFPLENBQUMsTUFBTSxFQUFkLHdCQUFjO29CQUNaLFdBQVcsU0FBQSxDQUFDO3lCQUNaLENBQUMsS0FBSyxFQUFOLHdCQUFNO29CQUNGLE9BQU8sR0FBRzt3QkFDZCxJQUFJLEVBQUUsT0FBTzt3QkFDYixJQUFJLEVBQUUsTUFBTTt3QkFDWixPQUFPLEVBQUUsa0RBQTJDLGdCQUFnQixNQUFHO3FCQUN4RSxDQUFBO29CQUNnQixxQkFBTSxHQUFHLENBQUMsT0FBTyxDQUFDO3dCQUNuQyx5REFBeUQ7c0JBRHRCOztvQkFBM0IsU0FBUyxDQUFBLFNBQWtCLENBQUEsS0FBdkI7b0JBQ1oseURBQXlEO29CQUN6RCxXQUFXLEdBQUcsTUFBSSxJQUFJLGdCQUFnQixDQUFDOzs7b0JBRXZDLFdBQVcsR0FBRyxLQUFLLENBQUM7OztvQkFHdEIsT0FBTyxDQUFDLHNEQUFzRCxDQUFDLENBQUE7b0JBQy9ELHFCQUFNLGdCQUFNLENBQUMsS0FBSyxDQUFDLG9DQUE2QixXQUFXLFNBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUUsRUFBRTs0QkFDM0YsS0FBSyxFQUFFLElBQUk7NEJBQ1gsS0FBSyxFQUFFLFNBQVM7eUJBQ2pCLENBQUMsRUFBQTs7b0JBSEYsU0FHRSxDQUFDOzs7eUJBSUMsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQSxFQUE5RSx5QkFBOEU7b0JBRW5FLHFCQUFNLE1BQU0sRUFBRSxFQUFBOztvQkFEM0IsNENBQTRDO29CQUM1QyxVQUFVLEdBQUcsU0FBYyxDQUFBOzs7b0JBRzdCLDhFQUE4RTtvQkFDOUUseUNBQXlDO29CQUN6QyxJQUFJLE9BQU8sQ0FBQyxlQUFlLEVBQUU7d0JBQzNCLCtCQUErQjt3QkFDL0IsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7NEJBQ3ZCLElBQUksRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRTtnQ0FDckQsY0FBYyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTzs2QkFDaEQ7eUJBQ0YsQ0FBQyxDQUFDO3FCQUNKO29CQUNELElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRTt3QkFDdEIsMEJBQTBCO3dCQUMxQixVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQzs0QkFDdkIsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRTtnQ0FDaEQsY0FBYyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTzs2QkFDaEQ7eUJBQ0YsQ0FBQyxDQUFDO3FCQUNKO29CQUNELElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRTt3QkFDdEIseUJBQXlCO3dCQUN6QixVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztxQkFDaEY7b0JBR0Qsa0ZBQWtGO29CQUNsRixJQUFJLEtBQUssRUFBRTt3QkFDVCxVQUFVLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztxQkFDaEM7b0JBRU8sZ0JBQWlDLFVBQVUsWUFBaEMsRUFBRSxhQUFvQixVQUFVLFNBQXRCLEVBQUUsVUFBVSxVQUFVLE1BQWYsQ0FBZ0I7b0JBRzlDLGtCQUFnQixVQUFVLENBQUMsWUFBWSxFQUFFLFVBQVEsQ0FBQyxDQUFDO29CQUNuRCxzQkFBb0IsVUFBUSxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxFQUF2QixDQUF1QixDQUFDLElBQUksU0FBUyxDQUFDO29CQUcvRSxTQUFTLEdBQUc7d0JBQ2hCLCtCQUErQjt3QkFDL0IseUJBQXlCO3dCQUN6QixzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsMEJBQTBCO3dCQUMxQix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjtxQkFDdEIsQ0FBQztvQkFFRSxLQUFLLHFCQUNKLFNBQVMsT0FDYixDQUFDO29CQUVGLGlDQUFpQztvQkFDakMsbURBQW1EO29CQUNuRCxJQUFJLGVBQWEsRUFBRTt3QkFDWCxlQUFlLEdBQUc7NEJBQ3RCLDRDQUE0Qzs0QkFDNUMsOEJBQThCO3lCQUMvQixDQUFDO3dCQUVGLEtBQUssbUNBQ0EsS0FBSyxTQUNMLGVBQWUsT0FDbkIsQ0FBQztxQkFDSDtvQkFBQSxDQUFDO29CQUVGLHVDQUF1QztvQkFDdkMseURBQXlEO29CQUN6RCxJQUFJLENBQUEsbUJBQWlCLGFBQWpCLG1CQUFpQix1QkFBakIsbUJBQWlCLENBQUUsSUFBSSxNQUFLLGtCQUFrQixFQUFFO3dCQUM5QyxvQkFBb0IsR0FBRzs0QkFDekIsdUNBQXVDOzRCQUN2QyxvREFBb0Q7eUJBQ3JELENBQUM7d0JBQ0YsMENBQTBDO3dCQUMxQyxJQUFJLG1CQUFpQixDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUU7NEJBQ3pDLG9CQUFvQixtQ0FDZixvQkFBb0I7Z0NBQ3ZCLG1EQUFtRDtnQ0FDbkQsb0RBQW9EO3FDQUNyRCxDQUFDO3lCQUNIOzZCQUFNOzRCQUNMLHVCQUF1Qjs0QkFDdkIsb0JBQW9CLG1DQUNmLG9CQUFvQjtnQ0FDdkIsK0RBQStEO2dDQUMvRCw0REFBNEQ7Z0NBQzVELGlEQUFpRDtnQ0FDakQsK0NBQStDO2dDQUMvQywrQ0FBK0M7cUNBQ2hELENBQUM7eUJBQ0g7d0JBRUQsc0ZBQXNGO3dCQUN0RixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLElBQUksS0FBSyxrQkFBa0IsRUFBM0IsQ0FBMkIsQ0FBQyxDQUFDO3dCQUU1RCxLQUFLLG1DQUNBLEtBQUssU0FDTCxvQkFBb0IsT0FDeEIsQ0FBQztxQkFDSDtvQkFFRCxrQ0FBa0M7b0JBQ2xDLG9EQUFvRDtvQkFDcEQsSUFBSSxDQUFBLG1CQUFpQixhQUFqQixtQkFBaUIsdUJBQWpCLG1CQUFpQixDQUFFLElBQUksTUFBSyxhQUFhLEVBQUU7d0JBQ3pDLGVBQWUsR0FBRzs0QkFDcEIsb0NBQW9DOzRCQUNwQyxzQ0FBc0M7NEJBQ3RDLCtCQUErQjt5QkFDaEMsQ0FBQzt3QkFDRiwwQ0FBMEM7d0JBQzFDLElBQUksbUJBQWlCLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBRTs0QkFDekMsZUFBZSxtQ0FDVixlQUFlO2dDQUNsQixnREFBZ0Q7Z0NBQ2hELGdEQUFnRDtnQ0FDaEQsOENBQThDO3FDQUMvQyxDQUFDO3lCQUNIOzZCQUFNOzRCQUNMLHVCQUF1Qjs0QkFDdkIsZUFBZSxtQ0FDVixlQUFlO2dDQUNsQixzREFBc0Q7Z0NBQ3RELG9EQUFvRDtnQ0FDcEQsa0RBQWtEO2dDQUNsRCwrQ0FBK0M7Z0NBQy9DLDZDQUE2QztnQ0FDN0MsK0RBQStEO3FDQUNoRSxDQUFDO3lCQUNIO3dCQUVELG1GQUFtRjt3QkFDbkYsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBQyxJQUFJLElBQUssT0FBQSxJQUFJLEtBQUssa0JBQWtCLEVBQTNCLENBQTJCLENBQUMsQ0FBQzt3QkFFNUQsS0FBSyxtQ0FDQSxLQUFLLFNBQ0wsZUFBZSxPQUNuQixDQUFDO3FCQUNIO29CQUdHLGNBQWMsR0FBRyxFQUFFLENBQUM7b0JBRXhCLGNBQWMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQUMsSUFBSSxFQUFFLElBQUk7d0JBQ3ZDLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQzt3QkFFdEIsSUFBSSxNQUFNLEdBQUcsVUFBRyxhQUFXLE1BQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFBO3dCQUU5RSxJQUFJLGVBQWEsRUFBRTs0QkFDakIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxDQUFDLENBQUM7eUJBQ3JEO3dCQUVELElBQUksQ0FBQSxtQkFBaUIsYUFBakIsbUJBQWlCLHVCQUFqQixtQkFBaUIsQ0FBRSxJQUFJLE1BQUssa0JBQWtCLEVBQUU7NEJBQ2xELE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxFQUFFLFNBQVMsQ0FBQyxDQUFDOzRCQUN4RSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRSxNQUFNLENBQUMsQ0FBQzt5QkFDL0Q7d0JBRUQsSUFBSSxDQUFBLG1CQUFpQixhQUFqQixtQkFBaUIsdUJBQWpCLG1CQUFpQixDQUFFLElBQUksTUFBSyxhQUFhLEVBQUU7NEJBQzdDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDOzRCQUNyRCxJQUFJLG1CQUFpQixDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUU7Z0NBQ3pDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQzs2QkFDdkM7NEJBQ0QsSUFBSSxtQkFBaUIsQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFO2dDQUN4QyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7NkJBQ3RDO3lCQUNGO3dCQUVELElBQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQzs0QkFDbkIsUUFBUSxVQUFBOzRCQUNSLE1BQU0sRUFBRSxJQUFJLEdBQUcsTUFBTTs0QkFDckIsS0FBSyxFQUFFO2dDQUNMLFdBQVcsZUFBQTtnQ0FDWCxRQUFRLFlBQUE7Z0NBQ1IsS0FBSyxTQUFBO2dDQUNMLGFBQWEsaUJBQUE7Z0NBQ2IsaUJBQWlCLHFCQUFBOzZCQUNsQjt5QkFDRixDQUFDLENBQUM7d0JBRUgsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDNUIsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFBO29CQUVsQixpQ0FBaUM7b0JBQ2pDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtvQkFDUixJQUFJLENBQUMsOEJBQThCLENBQUMsQ0FBQTtvQkFDcEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO29CQUVSLHFCQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUE7O29CQUFqQyxTQUFpQyxDQUFDO29CQUc1QixjQUFjLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQzt5QkFFdkMsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFLLENBQUMsU0FBUyxDQUFBLEVBQXRDLHlCQUFzQztvQkFDeEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO29CQUNSLElBQUksQ0FBQyx3Q0FBaUMsY0FBYyxRQUFLLENBQUMsQ0FBQTtvQkFDMUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO29CQUVSLDZCQUE2QjtvQkFDN0IscUJBQU0sZ0JBQU0sQ0FBQyxLQUFLLENBQUMsYUFBTSxhQUFXLGlCQUFPLGNBQWMsa0NBQXdCLGNBQWMsd0JBQXFCLEVBQUU7NEJBQ3BILEtBQUssRUFBRSxJQUFJOzRCQUNYLEtBQUssRUFBRSxTQUFTO3lCQUNqQixDQUFDLEVBQUE7O29CQUpGLDZCQUE2QjtvQkFDN0IsU0FHRSxDQUFBOzs7eUJBR0EsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFLLENBQUMsS0FBSyxDQUFBLEVBQTlCLHlCQUE4QjtvQkFDaEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO29CQUNSLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO29CQUMzQixJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7b0JBRVIsMkNBQTJDO29CQUMzQyxxQkFBTSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxhQUFNLGFBQVcsK0hBQXdILEVBQUU7NEJBQzVKLEtBQUssRUFBRSxJQUFJOzRCQUNYLEtBQUssRUFBRSxTQUFTO3lCQUNqQixDQUFDLEVBQUE7O29CQUpGLDJDQUEyQztvQkFDM0MsU0FHRSxDQUFBOzs7b0JBQ0gsQ0FBQztvQkFFRixPQUFPLENBQUMsMERBQTBELENBQUMsQ0FBQTtvQkFDbkUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO29CQUNSLElBQUksQ0FBQyxhQUFNLGFBQVcsQ0FBRSxDQUFDLENBQUE7b0JBQ3pCLElBQUksY0FBYyxLQUFLLEtBQUssRUFBRTt3QkFDNUIsSUFBSSxPQUFPLENBQUMsU0FBUzs0QkFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7d0JBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtxQkFDcEI7eUJBQU0sSUFBSSxjQUFjLEtBQUssTUFBTSxFQUFFO3dCQUNwQyxJQUFJLE9BQU8sQ0FBQyxTQUFTOzRCQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTt3QkFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO3FCQUNyQjt5QkFBTTt3QkFDTCxJQUFJLE9BQU8sQ0FBQyxTQUFTOzRCQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTt3QkFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO3FCQUNqQjtvQkFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7Ozs7O29CQUlWLHlCQUF5QjtvQkFFekIsSUFBSSxDQUFDLHFFQUEyRCxDQUFDLENBQUE7b0JBQ2pFLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBSyxDQUFDLENBQUE7b0JBQ3BCLElBQUksQ0FDRiwySEFBMkgsQ0FDNUgsQ0FBQTs7Ozs7U0FFSjtDQUNGLENBQUE7QUFFRCxrQkFBZSxPQUFPLENBQUMifQ==
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSwwQ0FTc0I7QUFDdEIsMENBQThDO0FBRzlDLElBQU0sT0FBTyxHQUFtQjtJQUM5QixJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7SUFDeEMsR0FBRyxFQUFFLFVBQU8sT0FBTzs7Ozs7b0JBRWYsS0FFRSxPQUFPLFdBRnFCLEVBQWhCLEtBQUssV0FBQSxFQUFFLE9BQU8sYUFBQSxFQUM1QixLQUNFLE9BQU8sTUFEMEIsRUFBMUIsSUFBSSxVQUFBLEVBQUUsU0FBUyxlQUFBLEVBQUUsT0FBTyxhQUFBLENBQ3ZCO29CQUNaLElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFO3dCQUM3QixJQUFBLG9CQUFRLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTt3QkFFbEMsc0JBQU87cUJBQ1I7Ozs7b0JBRUMscUJBQU0sSUFBQSx1QkFBVyxFQUFDLE9BQU8sQ0FBQyxFQUFBOztvQkFBMUIsU0FBMEIsQ0FBQztvQkFFM0IsMERBQTBEO29CQUMxRCw0RUFBNEU7b0JBQzVFLHFCQUFNLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxJQUFLLE9BQUEsVUFBVSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBeEIsQ0FBd0IsQ0FBQyxFQUFBOztvQkFGeEQsMERBQTBEO29CQUMxRCw0RUFBNEU7b0JBQzVFLFNBQXdELENBQUM7b0JBR3JELFVBQVUsR0FBZSwwQkFBYyxDQUFDO3lCQUd4QyxPQUFPLENBQUMsTUFBTSxFQUFkLHdCQUFjO29CQUNoQixxQkFBTSxJQUFBLHFCQUFTLEVBQUMsT0FBTyxDQUFDLEVBQUE7O29C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
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultOptions = exports.DEFAULT_APP_NAME = exports.TITLE_TEXT = void 0;
4
+ exports.TITLE_TEXT = "create expo stack";
5
+ exports.DEFAULT_APP_NAME = "myExpoApp";
6
+ exports.defaultOptions = {
7
+ projectName: exports.DEFAULT_APP_NAME,
8
+ packages: [],
9
+ flags: {
10
+ noGit: false,
11
+ noInstall: false,
12
+ importAlias: "~/",
13
+ },
14
+ };
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFYSxRQUFBLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQztBQUVqQyxRQUFBLGdCQUFnQixHQUFHLFdBQVcsQ0FBQztBQUUvQixRQUFBLGNBQWMsR0FBZTtJQUN4QyxXQUFXLEVBQUUsd0JBQWdCO0lBQzdCLFFBQVEsRUFBRSxFQUFFO0lBQ1osS0FBSyxFQUFFO1FBQ0wsS0FBSyxFQUFFLEtBQUs7UUFDWixTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsSUFBSTtLQUNsQjtDQUNGLENBQUMifQ==
@@ -41,7 +41,7 @@
41
41
  "expo": "~49.0.11",
42
42
  "expo-status-bar": "~1.6.0",
43
43
  "react": "18.2.0",
44
- "react-native": "0.72.4"
44
+ "react-native": "0.72.5"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@babel/core": "^7.20.0",
@@ -0,0 +1,4 @@
1
+ import { CliResults } from "./types";
2
+ export declare const TITLE_TEXT = "create expo stack";
3
+ export declare const DEFAULT_APP_NAME = "myExpoApp";
4
+ export declare const defaultOptions: CliResults;
@@ -0,0 +1,17 @@
1
+ export interface CliFlags {
2
+ noGit: boolean;
3
+ noInstall: boolean;
4
+ importAlias: string;
5
+ }
6
+ export declare const availablePackages: readonly ["nativewind", "react-navigation", "expo-router"];
7
+ export type NavigationTypes = "stack" | "tabs" | {};
8
+ export type AvailablePackages = {
9
+ name: (typeof availablePackages)[number];
10
+ type: "navigation" | "styling";
11
+ options: NavigationTypes;
12
+ };
13
+ export interface CliResults {
14
+ projectName: string;
15
+ packages: AvailablePackages[];
16
+ flags: CliFlags;
17
+ }
@@ -0,0 +1,2 @@
1
+ import { AvailablePackages } from "../types";
2
+ export declare function configureProjectFiles(files: string[], navigationPackage: AvailablePackages | undefined, useNativewind: boolean): string[];
@@ -0,0 +1,3 @@
1
+ import { Toolbox } from "gluegun/build/types/domain/toolbox";
2
+ import { AvailablePackages, CliResults } from "../types";
3
+ export declare function generateProjectFiles(cliResults: CliResults, files: string[], formattedFiles: any[], navigationPackage: AvailablePackages, toolbox: Toolbox, useNativewind: boolean): any[];
@@ -0,0 +1,3 @@
1
+ import { Toolbox } from "gluegun/build/types/domain/toolbox";
2
+ export type PackageManager = "npm" | "pnpm" | "yarn";
3
+ export declare function getPackageManager(toolbox: Toolbox): PackageManager;
@@ -0,0 +1,9 @@
1
+ export * from "./configureProjectFiles";
2
+ export * from "./generateProjectFiles";
3
+ export * from "./getPackageManager";
4
+ export * from "./printOutput";
5
+ export * from "./renderTitle";
6
+ export * from "./runCLI";
7
+ export * from "./runIgnite";
8
+ export * from "./showHelp";
9
+ export * from "./usePackage";
@@ -0,0 +1,3 @@
1
+ import { Toolbox } from "gluegun/build/types/domain/toolbox";
2
+ import { CliResults } from "../types";
3
+ export declare function printOutput(cliResults: CliResults, formattedFiles: any[], toolbox: Toolbox): Promise<void>;
@@ -0,0 +1,2 @@
1
+ import { Toolbox } from "gluegun/build/types/domain/toolbox";
2
+ export declare function renderTitle(toolbox: Toolbox): Promise<void>;
@@ -0,0 +1,3 @@
1
+ import { Toolbox } from "gluegun/build/types/domain/toolbox";
2
+ import { CliResults } from "../types";
3
+ export declare function runCLI(toolbox: Toolbox): Promise<CliResults>;
@@ -0,0 +1,2 @@
1
+ import { Toolbox } from "gluegun/build/types/domain/toolbox";
2
+ export declare function runIgnite(toolbox: Toolbox): Promise<void>;
@@ -0,0 +1 @@
1
+ export declare function showHelp(info: any, highlight: any, warning: any): void;
@@ -0,0 +1,2 @@
1
+ import { AvailablePackages } from "../types";
2
+ export declare function usePackage(packageName: string, packages: AvailablePackages[]): boolean;
package/build/types.js CHANGED
@@ -1,2 +1,5 @@
1
- // export types
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZSJ9
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.availablePackages = void 0;
4
+ exports.availablePackages = ["nativewind", "react-navigation", "expo-router"];
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT2EsUUFBQSxpQkFBaUIsR0FBRyxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxhQUFhLENBQVUsQ0FBQyJ9