create-expo-stack 2.3.6 → 2.3.7-next.263009a
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/README.md +2 -2
- package/build/commands/create-expo-stack.js +30 -25
- package/build/templates/base/.gitignore.ejs +2 -0
- package/build/types/utilities/validateProjectName.d.ts +3 -0
- package/build/utilities/runCLI.js +35 -28
- package/build/utilities/validateProjectName.js +70 -0
- package/package.json +2 -8
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
</p>
|
|
9
9
|
|
|
10
10
|
<p align="center">
|
|
11
|
-
Get started by running <code>npx create-expo-stack
|
|
11
|
+
Get started by running <code>npx create-expo-stack</code>
|
|
12
12
|
|
|
13
13
|
## Sponsors
|
|
14
14
|
|
|
@@ -27,7 +27,7 @@ You can also use flags such as `--noInstall`, `--noGit`, and `--default` in orde
|
|
|
27
27
|
|
|
28
28
|
To get started, use npx to run the CLI tool. You will be prompted to opt into the features you want to use.
|
|
29
29
|
|
|
30
|
-
`npx create-expo-stack
|
|
30
|
+
`npx create-expo-stack`
|
|
31
31
|
|
|
32
32
|
<img src="https://github.com/danstepanov/create-expo-stack/assets/5482800/e709dd66-cb9b-463c-91f9-b842bb80585c" />
|
|
33
33
|
|
|
@@ -44,22 +44,23 @@ var utilities_1 = require("../utilities");
|
|
|
44
44
|
var constants_1 = require("../constants");
|
|
45
45
|
var types_1 = require("../types");
|
|
46
46
|
var clearStylingPackages_1 = __importDefault(require("../utilities/clearStylingPackages"));
|
|
47
|
+
var validateProjectName_1 = require("../utilities/validateProjectName");
|
|
47
48
|
var command = {
|
|
48
49
|
name: 'create-expo-stack',
|
|
49
50
|
description: 'Create a new Expo project',
|
|
50
51
|
run: function (toolbox) { return __awaiter(void 0, void 0, void 0, function () {
|
|
51
|
-
var _a, first, options,
|
|
52
|
-
return __generator(this, function (
|
|
53
|
-
switch (
|
|
52
|
+
var _a, existsAsync, removeAsync, _b, first, options, _c, info, highlight, warning, prompt, cliResults, useDefault, skipCLI, useBlankTypescript, optionsPassedIn, generateRerunScript, packageManager, packages, authenticationPackage, navigationPackage, stylingPackage, files, formattedFiles, error_1;
|
|
53
|
+
return __generator(this, function (_d) {
|
|
54
|
+
switch (_d.label) {
|
|
54
55
|
case 0:
|
|
55
|
-
_a = toolbox.parameters, first =
|
|
56
|
+
_a = toolbox.filesystem, existsAsync = _a.existsAsync, removeAsync = _a.removeAsync, _b = toolbox.parameters, first = _b.first, options = _b.options, _c = toolbox.print, info = _c.info, highlight = _c.highlight, warning = _c.warning, prompt = toolbox.prompt;
|
|
56
57
|
if (options.help || options.h) {
|
|
57
58
|
(0, utilities_1.showHelp)(info, highlight, warning);
|
|
58
59
|
return [2 /*return*/];
|
|
59
60
|
}
|
|
60
|
-
|
|
61
|
+
_d.label = 1;
|
|
61
62
|
case 1:
|
|
62
|
-
|
|
63
|
+
_d.trys.push([1, 11, , 12]);
|
|
63
64
|
// Validation: check if the user passed in the tabs/drawer option without passing in either expo router or react navigation. If so, throw an error
|
|
64
65
|
if ((options.tabs || options.drawer) &&
|
|
65
66
|
!options.reactNavigation &&
|
|
@@ -72,20 +73,20 @@ var command = {
|
|
|
72
73
|
}
|
|
73
74
|
return [4 /*yield*/, (0, utilities_1.renderTitle)(toolbox)];
|
|
74
75
|
case 2:
|
|
75
|
-
|
|
76
|
+
_d.sent();
|
|
76
77
|
// TODO: this is hacky, figure out a way to do this better
|
|
77
78
|
// set timeout for 1 second so that the title can render before the CLI runs
|
|
78
79
|
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 200); })];
|
|
79
80
|
case 3:
|
|
80
81
|
// TODO: this is hacky, figure out a way to do this better
|
|
81
82
|
// set timeout for 1 second so that the title can render before the CLI runs
|
|
82
|
-
|
|
83
|
+
_d.sent();
|
|
83
84
|
cliResults = constants_1.defaultOptions;
|
|
84
85
|
if (!options.ignite) return [3 /*break*/, 5];
|
|
85
86
|
return [4 /*yield*/, (0, utilities_1.runIgnite)(toolbox, cliResults)];
|
|
86
87
|
case 4:
|
|
87
|
-
|
|
88
|
-
return [3 /*break*/,
|
|
88
|
+
_d.sent();
|
|
89
|
+
return [3 /*break*/, 10];
|
|
89
90
|
case 5:
|
|
90
91
|
useDefault = (options.default !== undefined && options.default) || (options.d !== undefined && options.d);
|
|
91
92
|
skipCLI = options.nonInteractive;
|
|
@@ -106,8 +107,8 @@ var command = {
|
|
|
106
107
|
return [4 /*yield*/, (0, utilities_1.runCLI)(toolbox)];
|
|
107
108
|
case 6:
|
|
108
109
|
// Run the CLI to prompt the user for input
|
|
109
|
-
cliResults =
|
|
110
|
-
|
|
110
|
+
cliResults = _d.sent();
|
|
111
|
+
_d.label = 7;
|
|
111
112
|
case 7:
|
|
112
113
|
if (!cliResults.flags.packageManager) {
|
|
113
114
|
cliResults.flags.packageManager = 'npm';
|
|
@@ -186,6 +187,11 @@ var command = {
|
|
|
186
187
|
if (first) {
|
|
187
188
|
cliResults.projectName = first;
|
|
188
189
|
}
|
|
190
|
+
// Validate the project name
|
|
191
|
+
return [4 /*yield*/, (0, validateProjectName_1.validateProjectName)(existsAsync, removeAsync, prompt, cliResults.projectName)];
|
|
192
|
+
case 8:
|
|
193
|
+
// Validate the project name
|
|
194
|
+
_d.sent();
|
|
189
195
|
// By this point, all cliResults should be set
|
|
190
196
|
info('');
|
|
191
197
|
highlight('Your project configuration:');
|
|
@@ -193,7 +199,7 @@ var command = {
|
|
|
193
199
|
info('');
|
|
194
200
|
highlight('To recreate this project, run:');
|
|
195
201
|
generateRerunScript = function (cliResults) {
|
|
196
|
-
var script = "npx create-expo-stack
|
|
202
|
+
var script = "npx create-expo-stack ".concat(cliResults.projectName, " ");
|
|
197
203
|
// Add the packages
|
|
198
204
|
cliResults.packages.forEach(function (p) {
|
|
199
205
|
var _a, _b;
|
|
@@ -236,22 +242,21 @@ var command = {
|
|
|
236
242
|
formattedFiles = [];
|
|
237
243
|
formattedFiles = (0, utilities_1.generateProjectFiles)(authenticationPackage, cliResults, files, formattedFiles, navigationPackage, packageManager, stylingPackage, toolbox);
|
|
238
244
|
return [4 /*yield*/, (0, utilities_1.printOutput)(cliResults, formattedFiles, toolbox)];
|
|
239
|
-
case
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
case
|
|
243
|
-
case
|
|
244
|
-
error_1 =
|
|
245
|
-
//
|
|
245
|
+
case 9:
|
|
246
|
+
_d.sent();
|
|
247
|
+
_d.label = 10;
|
|
248
|
+
case 10: return [3 /*break*/, 12];
|
|
249
|
+
case 11:
|
|
250
|
+
error_1 = _d.sent();
|
|
251
|
+
// await removeAsync(cliResults.projectName);
|
|
246
252
|
info("Oops, something went wrong while creating your project \uD83D\uDE22");
|
|
247
|
-
info(
|
|
248
|
-
info("Error: ".concat(error_1));
|
|
253
|
+
info("\n".concat(error_1.message ? error_1.message : error_1));
|
|
249
254
|
info("\nIf this was unexpected, please open an issue: https://github.com/danstepanov/create-expo-stack#reporting-bugs--feedback");
|
|
250
|
-
return [3 /*break*/,
|
|
251
|
-
case
|
|
255
|
+
return [3 /*break*/, 12];
|
|
256
|
+
case 12: return [2 /*return*/];
|
|
252
257
|
}
|
|
253
258
|
});
|
|
254
259
|
}); }
|
|
255
260
|
};
|
|
256
261
|
exports.default = command;
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFN0IsMENBU3NCO0FBQ3RCLDBDQUE4QztBQUM5QyxrQ0FBeUQ7QUFDekQsMkZBQXFFO0FBQ3JFLHdFQUF1RTtBQUV2RSxJQUFNLE9BQU8sR0FBbUI7SUFDL0IsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixXQUFXLEVBQUUsMkJBQTJCO0lBQ3hDLEdBQUcsRUFBRSxVQUFPLE9BQU87Ozs7O29CQUVqQixLQUlHLE9BQU8sV0FKOEIsRUFBMUIsV0FBVyxpQkFBQSxFQUFFLFdBQVcsaUJBQUEsRUFDdEMsS0FHRyxPQUFPLFdBSG9CLEVBQWhCLEtBQUssV0FBQSxFQUFFLE9BQU8sYUFBQSxFQUM1QixLQUVHLE9BQU8sTUFGeUIsRUFBMUIsSUFBSSxVQUFBLEVBQUUsU0FBUyxlQUFBLEVBQUUsT0FBTyxhQUFBLEVBQ2pDLE1BQU0sR0FDSCxPQUFPLE9BREosQ0FDSztvQkFFWixJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUMvQixJQUFBLG9CQUFRLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFFbkMsc0JBQU87b0JBQ1IsQ0FBQzs7OztvQkFHQSxrSkFBa0o7b0JBQ2xKLElBQ0MsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7d0JBQ2hDLENBQUMsT0FBTyxDQUFDLGVBQWU7d0JBQ3hCLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO3dCQUM1QixDQUFDLE9BQU8sQ0FBQyxlQUFlO3dCQUN4QixD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
|
|
@@ -13,6 +13,8 @@ web-build/
|
|
|
13
13
|
expo-env.d.ts<% } %>
|
|
14
14
|
<% if (props.stylingPackage?.name === "tamagui") { %># tamagui
|
|
15
15
|
.tamagui/<% } %>
|
|
16
|
+
<% if ((props.authenticationPackage?.name === "supabase") || (props.authenticationPackage?.name === "firebase")) { %># firebase/supabase
|
|
17
|
+
.env<% } %>
|
|
16
18
|
|
|
17
19
|
# macOS
|
|
18
20
|
.DS_Store
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ExistsResult } from 'fs-jetpack/types';
|
|
2
|
+
import { GluegunPrompt } from 'gluegun';
|
|
3
|
+
export declare function validateProjectName(existsAsync: (path: string) => Promise<ExistsResult>, removeAsync: (path?: string) => Promise<void>, prompt: GluegunPrompt, projectName: string): Promise<void>;
|
|
@@ -38,33 +38,40 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.runCLI = void 0;
|
|
40
40
|
var constants_1 = require("../constants");
|
|
41
|
+
var validateProjectName_1 = require("./validateProjectName");
|
|
41
42
|
function runCLI(toolbox) {
|
|
42
43
|
return __awaiter(this, void 0, void 0, function () {
|
|
43
|
-
var
|
|
44
|
+
var _a, existsAsync, removeAsync, first, success, prompt, cliResults, askName, name, projectName, useTypescript, askNavigation, askNavigationType, navigationSelect, navigationTypeSelect, askStyling, stylingSelect, askAuthentication, authenticationSelect, askPackageManager, packageManagerSelect;
|
|
44
45
|
return __generator(this, function (_b) {
|
|
45
46
|
switch (_b.label) {
|
|
46
47
|
case 0:
|
|
47
|
-
|
|
48
|
+
_a = toolbox.filesystem, existsAsync = _a.existsAsync, removeAsync = _a.removeAsync, first = toolbox.parameters.first, success = toolbox.print.success, prompt = toolbox.prompt;
|
|
48
49
|
cliResults = constants_1.defaultOptions;
|
|
49
50
|
if (!first) return [3 /*break*/, 1];
|
|
50
51
|
cliResults.projectName = first;
|
|
51
|
-
return [3 /*break*/,
|
|
52
|
+
return [3 /*break*/, 4];
|
|
52
53
|
case 1:
|
|
53
54
|
askName = {
|
|
54
55
|
type: 'input',
|
|
55
56
|
name: 'name',
|
|
56
57
|
message: "What do you want to name your project? (".concat(constants_1.DEFAULT_APP_NAME, ")")
|
|
57
58
|
};
|
|
58
|
-
return [4 /*yield*/, ask(askName)];
|
|
59
|
+
return [4 /*yield*/, prompt.ask(askName)];
|
|
59
60
|
case 2:
|
|
60
61
|
name = (_b.sent()).name;
|
|
61
62
|
cliResults.projectName = name || constants_1.DEFAULT_APP_NAME;
|
|
62
|
-
|
|
63
|
+
projectName = cliResults.projectName;
|
|
64
|
+
// Check if the directory already exists
|
|
65
|
+
return [4 /*yield*/, (0, validateProjectName_1.validateProjectName)(existsAsync, removeAsync, prompt, projectName)];
|
|
63
66
|
case 3:
|
|
67
|
+
// Check if the directory already exists
|
|
68
|
+
_b.sent();
|
|
69
|
+
_b.label = 4;
|
|
70
|
+
case 4:
|
|
64
71
|
// Clear default packages
|
|
65
72
|
cliResults.packages = [];
|
|
66
|
-
return [4 /*yield*/, confirm('Would you like to use TypeScript with this project?', true)];
|
|
67
|
-
case
|
|
73
|
+
return [4 /*yield*/, prompt.confirm('Would you like to use TypeScript with this project?', true)];
|
|
74
|
+
case 5:
|
|
68
75
|
useTypescript = _b.sent();
|
|
69
76
|
if (useTypescript) {
|
|
70
77
|
success('Good call, now using TypeScript! 🚀');
|
|
@@ -84,12 +91,12 @@ function runCLI(toolbox) {
|
|
|
84
91
|
message: 'What type of navigation would you like to use?',
|
|
85
92
|
choices: ['Stack', 'Tabs', 'Drawer']
|
|
86
93
|
};
|
|
87
|
-
return [4 /*yield*/, ask(askNavigation)];
|
|
88
|
-
case 5:
|
|
89
|
-
navigationSelect = (_b.sent()).navigationSelect;
|
|
90
|
-
if (!(navigationSelect !== 'None')) return [3 /*break*/, 7];
|
|
91
|
-
return [4 /*yield*/, ask(askNavigationType)];
|
|
94
|
+
return [4 /*yield*/, prompt.ask(askNavigation)];
|
|
92
95
|
case 6:
|
|
96
|
+
navigationSelect = (_b.sent()).navigationSelect;
|
|
97
|
+
if (!(navigationSelect !== 'None')) return [3 /*break*/, 8];
|
|
98
|
+
return [4 /*yield*/, prompt.ask(askNavigationType)];
|
|
99
|
+
case 7:
|
|
93
100
|
navigationTypeSelect = (_b.sent()).navigationTypeSelect;
|
|
94
101
|
if (navigationSelect === 'React Navigation') {
|
|
95
102
|
cliResults.packages.push({
|
|
@@ -110,19 +117,19 @@ function runCLI(toolbox) {
|
|
|
110
117
|
});
|
|
111
118
|
}
|
|
112
119
|
success("Great, we'll use ".concat(navigationSelect, "!"));
|
|
113
|
-
return [3 /*break*/,
|
|
114
|
-
case 7:
|
|
115
|
-
success("No problem, skipping navigation for now.");
|
|
116
|
-
_b.label = 8;
|
|
120
|
+
return [3 /*break*/, 9];
|
|
117
121
|
case 8:
|
|
122
|
+
success("No problem, skipping navigation for now.");
|
|
123
|
+
_b.label = 9;
|
|
124
|
+
case 9:
|
|
118
125
|
askStyling = {
|
|
119
126
|
type: 'select',
|
|
120
127
|
name: 'stylingSelect',
|
|
121
128
|
message: 'What would you like to use for styling?',
|
|
122
129
|
choices: ['Nativewind', 'Stylesheet', 'Tamagui (experimental)']
|
|
123
130
|
};
|
|
124
|
-
return [4 /*yield*/, ask(askStyling)];
|
|
125
|
-
case
|
|
131
|
+
return [4 /*yield*/, prompt.ask(askStyling)];
|
|
132
|
+
case 10:
|
|
126
133
|
stylingSelect = (_b.sent()).stylingSelect;
|
|
127
134
|
if (stylingSelect === 'Nativewind') {
|
|
128
135
|
cliResults.packages.push({ name: 'nativewind', type: 'styling' });
|
|
@@ -142,8 +149,8 @@ function runCLI(toolbox) {
|
|
|
142
149
|
message: 'What would you like to use for authentication?',
|
|
143
150
|
choices: ['None', 'Supabase', 'Firebase']
|
|
144
151
|
};
|
|
145
|
-
return [4 /*yield*/, ask(askAuthentication)];
|
|
146
|
-
case
|
|
152
|
+
return [4 /*yield*/, prompt.ask(askAuthentication)];
|
|
153
|
+
case 11:
|
|
147
154
|
authenticationSelect = (_b.sent()).authenticationSelect;
|
|
148
155
|
if (authenticationSelect === 'Supabase') {
|
|
149
156
|
cliResults.packages.push({ name: 'supabase', type: 'authentication' });
|
|
@@ -156,25 +163,25 @@ function runCLI(toolbox) {
|
|
|
156
163
|
else {
|
|
157
164
|
success("No problem, skipping authentication for now.");
|
|
158
165
|
}
|
|
159
|
-
if (!!cliResults.flags.packageManager) return [3 /*break*/,
|
|
166
|
+
if (!!cliResults.flags.packageManager) return [3 /*break*/, 13];
|
|
160
167
|
askPackageManager = {
|
|
161
168
|
type: 'select',
|
|
162
169
|
name: 'packageManagerSelect',
|
|
163
170
|
message: 'Which package manager would you like to use?',
|
|
164
171
|
choices: ['npm', 'yarn', 'pnpm', 'bun']
|
|
165
172
|
};
|
|
166
|
-
return [4 /*yield*/, ask(askPackageManager)];
|
|
167
|
-
case
|
|
173
|
+
return [4 /*yield*/, prompt.ask(askPackageManager)];
|
|
174
|
+
case 12:
|
|
168
175
|
packageManagerSelect = (_b.sent()).packageManagerSelect;
|
|
169
176
|
cliResults.flags.packageManager = packageManagerSelect;
|
|
170
|
-
return [3 /*break*/,
|
|
171
|
-
case
|
|
177
|
+
return [3 /*break*/, 14];
|
|
178
|
+
case 13:
|
|
172
179
|
cliResults.flags.packageManager = 'npm';
|
|
173
|
-
_b.label =
|
|
174
|
-
case
|
|
180
|
+
_b.label = 14;
|
|
181
|
+
case 14: return [2 /*return*/, cliResults];
|
|
175
182
|
}
|
|
176
183
|
});
|
|
177
184
|
});
|
|
178
185
|
}
|
|
179
186
|
exports.runCLI = runCLI;
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuQ0xJLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9ydW5DTEkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsMENBQWdFO0FBRWhFLDZEQUE0RDtBQUU1RCxTQUFzQixNQUFNLENBQUMsT0FBZ0I7Ozs7OztvQkFFM0MsS0FJRyxPQUFPLFdBSjhCLEVBQTFCLFdBQVcsaUJBQUEsRUFBRSxXQUFXLGlCQUFBLEVBQ3hCLEtBQUssR0FHaEIsT0FBTyxpQkFIUyxFQUNWLE9BQU8sR0FFYixPQUFPLGNBRk0sRUFDaEIsTUFBTSxHQUNILE9BQU8sT0FESixDQUNLO29CQUdOLFVBQVUsR0FBRywwQkFBYyxDQUFDO3lCQUc5QixLQUFLLEVBQUwsd0JBQUs7b0JBQ1IsVUFBVSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7OztvQkFFekIsT0FBTyxHQUFHO3dCQUNmLElBQUksRUFBRSxPQUFPO3dCQUNiLElBQUksRUFBRSxNQUFNO3dCQUNaLE9BQU8sRUFBRSxrREFBMkMsNEJBQWdCLE1BQUc7cUJBQ3ZFLENBQUM7b0JBQ2UscUJBQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBQTs7b0JBQWxDLElBQUksR0FBSyxDQUFBLFNBQXlCLENBQUEsS0FBOUI7b0JBQ1osVUFBVSxDQUFDLFdBQVcsR0FBRyxJQUFJLElBQUksNEJBQWdCLENBQUM7b0JBQzFDLFdBQVcsR0FBSyxVQUFVLFlBQWYsQ0FBZ0I7b0JBQ25DLHdDQUF3QztvQkFDeEMscUJBQU0sSUFBQSx5Q0FBbUIsRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBQTs7b0JBRHhFLHdDQUF3QztvQkFDeEMsU0FBd0UsQ0FBQzs7O29CQUcxRSx5QkFBeUI7b0JBQ3pCLFVBQVUsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO29CQUVILHFCQUFN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
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.validateProjectName = void 0;
|
|
40
|
+
function validateProjectName(existsAsync, removeAsync, prompt, projectName) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
42
|
+
var confirmDelete;
|
|
43
|
+
return __generator(this, function (_a) {
|
|
44
|
+
switch (_a.label) {
|
|
45
|
+
case 0: return [4 /*yield*/, existsAsync(projectName)];
|
|
46
|
+
case 1:
|
|
47
|
+
if (!_a.sent()) return [3 /*break*/, 5];
|
|
48
|
+
return [4 /*yield*/, prompt.ask([
|
|
49
|
+
{
|
|
50
|
+
type: 'confirm',
|
|
51
|
+
name: 'delete',
|
|
52
|
+
message: "A folder with the name '".concat(projectName, "' already exists. Do you want to delete it?")
|
|
53
|
+
},
|
|
54
|
+
])];
|
|
55
|
+
case 2:
|
|
56
|
+
confirmDelete = _a.sent();
|
|
57
|
+
if (!confirmDelete.delete) return [3 /*break*/, 4];
|
|
58
|
+
return [4 /*yield*/, removeAsync(projectName)];
|
|
59
|
+
case 3:
|
|
60
|
+
_a.sent();
|
|
61
|
+
console.log("Deleted existing directory: ".concat(projectName));
|
|
62
|
+
return [3 /*break*/, 5];
|
|
63
|
+
case 4: throw new Error("Exiting, a project with the name '".concat(projectName, "' already exists."));
|
|
64
|
+
case 5: return [2 /*return*/];
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
exports.validateProjectName = validateProjectName;
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVQcm9qZWN0TmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmFsaWRhdGVQcm9qZWN0TmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxTQUFzQixtQkFBbUIsQ0FBQyxXQUFvRCxFQUFFLFdBQTZDLEVBQUUsTUFBcUIsRUFBRSxXQUFtQjs7Ozs7d0JBQ3BMLHFCQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFBQTs7eUJBQTlCLFNBQThCLEVBQTlCLHdCQUE4QjtvQkFDWCxxQkFBTSxNQUFNLENBQUMsR0FBRyxDQUFDOzRCQUNyQztnQ0FDRCxJQUFJLEVBQUUsU0FBUztnQ0FDZixJQUFJLEVBQUUsUUFBUTtnQ0FDZCxPQUFPLEVBQUUsa0NBQTJCLFdBQVcsZ0RBQTZDOzZCQUMxRjt5QkFDRixDQUFDLEVBQUE7O29CQU5JLGFBQWEsR0FBRyxTQU1wQjt5QkFFRSxhQUFhLENBQUMsTUFBTSxFQUFwQix3QkFBb0I7b0JBQ3RCLHFCQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFBQTs7b0JBQTlCLFNBQThCLENBQUM7b0JBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQStCLFdBQVcsQ0FBRSxDQUFDLENBQUM7O3dCQUUxRCxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUFxQyxXQUFXLHNCQUFtQixDQUFDLENBQUM7Ozs7O0NBR3hGO0FBakJELGtEQWlCQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-expo-stack",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.7-next.263009a",
|
|
4
4
|
"description": "CLI tool to initialize a React Native application with Expo",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -33,11 +33,6 @@
|
|
|
33
33
|
"test:watch": "bun test --watch",
|
|
34
34
|
"test": "bun test --timeout 25000"
|
|
35
35
|
},
|
|
36
|
-
"husky": {
|
|
37
|
-
"hooks": {
|
|
38
|
-
"pre-commit": "pretty-quick --staged"
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
36
|
"prettier": {
|
|
42
37
|
"arrowParens": "always",
|
|
43
38
|
"bracketSameLine": false,
|
|
@@ -64,8 +59,7 @@
|
|
|
64
59
|
"eslint-config-prettier": "^9.0.0",
|
|
65
60
|
"eslint-plugin-prettier": "^5.0.1",
|
|
66
61
|
"husky": "^5.1.3",
|
|
67
|
-
"prettier": "^
|
|
68
|
-
"pretty-quick": "^3.1.0"
|
|
62
|
+
"prettier": "^3.1.0"
|
|
69
63
|
},
|
|
70
64
|
"publishConfig": {
|
|
71
65
|
"provenance": false
|