create-expo-stack 2.0.7 → 2.0.9
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/commands/create-expo-stack.js +65 -49
- package/build/templates/base/App.tsx.ejs +41 -0
- package/build/templates/base/app.json.ejs +43 -0
- package/build/templates/base/assets/adaptive-icon.png +0 -0
- package/build/templates/base/assets/favicon.png +0 -0
- package/build/templates/base/assets/icon.png +0 -0
- package/build/templates/base/assets/splash.png +0 -0
- package/build/templates/base/babel.config.js.ejs +17 -0
- package/build/templates/base/package.json.ejs +75 -0
- package/build/templates/base/tsconfig.json.ejs +16 -0
- package/build/templates/packages/expo-router/expo-env.d.ts +4 -0
- package/build/templates/packages/expo-router/index.ts +1 -0
- package/build/templates/packages/expo-router/metro.config.js +11 -0
- package/build/templates/packages/expo-router/stack/app/_layout.tsx.ejs +56 -0
- package/build/templates/packages/expo-router/stack/app/details.tsx.ejs +58 -0
- package/build/templates/packages/expo-router/stack/app/index.tsx.ejs +96 -0
- package/build/templates/packages/expo-router/tabs/app/(tabs)/_layout.tsx.ejs +57 -0
- package/build/templates/packages/expo-router/tabs/app/(tabs)/index.tsx.ejs +52 -0
- package/build/templates/packages/expo-router/tabs/app/(tabs)/two.tsx.ejs +52 -0
- package/build/templates/packages/expo-router/tabs/app/_layout.tsx.ejs +15 -0
- package/build/templates/packages/expo-router/tabs/app/modal.tsx.ejs +55 -0
- package/build/templates/packages/expo-router/tabs/components/edit-screen-info.tsx.ejs +84 -0
- package/build/templates/packages/nativewind/app.d.ts +2 -0
- package/build/templates/packages/nativewind/tailwind.config.js.ejs +16 -0
- package/build/templates/packages/react-navigation/App.tsx.ejs +8 -0
- package/build/templates/packages/react-navigation/components/edit-screen-info.tsx.ejs +99 -0
- package/build/templates/packages/react-navigation/navigation/index.tsx.ejs +98 -0
- package/build/templates/packages/react-navigation/navigation/tab-navigator.tsx.ejs +62 -0
- package/build/templates/packages/react-navigation/screens/details.tsx.ejs +61 -0
- package/build/templates/packages/react-navigation/screens/modal.tsx.ejs +57 -0
- package/build/templates/packages/react-navigation/screens/one.tsx.ejs +54 -0
- package/build/templates/packages/react-navigation/screens/overview.tsx.ejs +97 -0
- package/build/templates/packages/react-navigation/screens/two.tsx.ejs +54 -0
- package/package.json +3 -2
|
@@ -47,10 +47,11 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
47
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
48
|
var gluegun_1 = require("gluegun");
|
|
49
49
|
var gradient = require("gradient-string");
|
|
50
|
-
var
|
|
51
|
-
|
|
50
|
+
var figlet = require("figlet");
|
|
51
|
+
// import { getUserPackageManager } from '../utilities/getUserPackageManager';
|
|
52
|
+
var DEFAULT_APP_NAME = "myExpoApp";
|
|
53
|
+
var TITLE_TEXT = "create expo stack";
|
|
52
54
|
var availablePackages = ["nativewind", "react-navigation", "expo-router"];
|
|
53
|
-
var TITLE_TEXT = " \u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\n\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u255A\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u255A\u2588\u2588\u2557\u2588\u2588\u2554\u255D\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2551 \u2588\u2588\u2554\u255D\n\u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u255A\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2554\u255D \n\u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2550\u2550\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2588\u2588\u2557 \n\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2554\u255D \u2588\u2588\u2557\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2557\n \u255A\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D";
|
|
54
55
|
var defaultOptions = {
|
|
55
56
|
projectName: DEFAULT_APP_NAME,
|
|
56
57
|
packages: [],
|
|
@@ -146,29 +147,37 @@ var command = {
|
|
|
146
147
|
function usePackage(packageName, packages) {
|
|
147
148
|
return packages.find(function (p) { return p.name === packageName; }) ? true : false;
|
|
148
149
|
}
|
|
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
150
|
function renderTitle() {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
151
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
152
|
+
var cesGradient;
|
|
153
|
+
return __generator(this, function (_a) {
|
|
154
|
+
switch (_a.label) {
|
|
155
|
+
case 0:
|
|
156
|
+
cesGradient = gradient(Object.values(poimandresTheme));
|
|
157
|
+
return [4 /*yield*/, figlet.text(TITLE_TEXT, {
|
|
158
|
+
font: "Standard",
|
|
159
|
+
horizontalLayout: "default",
|
|
160
|
+
verticalLayout: "default",
|
|
161
|
+
width: 80,
|
|
162
|
+
whitespaceBreak: true,
|
|
163
|
+
}, function (err, data) {
|
|
164
|
+
if (err) {
|
|
165
|
+
console.log("Something went wrong...");
|
|
166
|
+
console.dir(err);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
info("");
|
|
170
|
+
info("");
|
|
171
|
+
console.log(cesGradient.multiline(data));
|
|
172
|
+
info("");
|
|
173
|
+
info("");
|
|
174
|
+
})];
|
|
175
|
+
case 1:
|
|
176
|
+
_a.sent();
|
|
177
|
+
return [2 /*return*/];
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
});
|
|
172
181
|
}
|
|
173
182
|
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, error_1;
|
|
174
183
|
return __generator(this, function (_d) {
|
|
@@ -183,42 +192,49 @@ var command = {
|
|
|
183
192
|
;
|
|
184
193
|
_d.label = 1;
|
|
185
194
|
case 1:
|
|
186
|
-
_d.trys.push([1,
|
|
187
|
-
renderTitle();
|
|
195
|
+
_d.trys.push([1, 13, , 14]);
|
|
196
|
+
return [4 /*yield*/, renderTitle()];
|
|
197
|
+
case 2:
|
|
198
|
+
_d.sent();
|
|
199
|
+
// set timeout for 1 second
|
|
200
|
+
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 200); })];
|
|
201
|
+
case 3:
|
|
202
|
+
// set timeout for 1 second
|
|
203
|
+
_d.sent();
|
|
188
204
|
cliResults = defaultOptions;
|
|
189
|
-
if (!options.ignite) return [3 /*break*/,
|
|
205
|
+
if (!options.ignite) return [3 /*break*/, 8];
|
|
190
206
|
projectName = void 0;
|
|
191
|
-
if (!!first) return [3 /*break*/,
|
|
207
|
+
if (!!first) return [3 /*break*/, 5];
|
|
192
208
|
askName = {
|
|
193
209
|
type: 'input',
|
|
194
210
|
name: 'name',
|
|
195
|
-
message:
|
|
211
|
+
message: "What do you want to name your project? (".concat(DEFAULT_APP_NAME, ")"),
|
|
196
212
|
};
|
|
197
213
|
return [4 /*yield*/, ask(askName)];
|
|
198
|
-
case
|
|
214
|
+
case 4:
|
|
199
215
|
name_2 = (_d.sent()).name;
|
|
200
216
|
projectName = name_2;
|
|
201
|
-
return [3 /*break*/,
|
|
202
|
-
case
|
|
217
|
+
return [3 /*break*/, 6];
|
|
218
|
+
case 5:
|
|
203
219
|
projectName = first;
|
|
204
|
-
_d.label =
|
|
205
|
-
case
|
|
220
|
+
_d.label = 6;
|
|
221
|
+
case 6:
|
|
206
222
|
success('Running Ignite CLI to create an opinionated stack...');
|
|
207
223
|
return [4 /*yield*/, gluegun_1.system.spawn("npx ignite-cli@latest new ".concat(projectName).concat(options.default && " --yes"), {
|
|
208
224
|
shell: true,
|
|
209
225
|
stdio: 'inherit',
|
|
210
226
|
})];
|
|
211
|
-
case
|
|
227
|
+
case 7:
|
|
212
228
|
_d.sent();
|
|
213
|
-
return [3 /*break*/,
|
|
214
|
-
case
|
|
215
|
-
if (!((options.default !== undefined && !options.default) || !options.nonInteractive)) return [3 /*break*/,
|
|
229
|
+
return [3 /*break*/, 12];
|
|
230
|
+
case 8:
|
|
231
|
+
if (!((options.default !== undefined && !options.default) || !options.nonInteractive)) return [3 /*break*/, 10];
|
|
216
232
|
return [4 /*yield*/, runCLI()];
|
|
217
|
-
case
|
|
233
|
+
case 9:
|
|
218
234
|
// Run the CLI to prompt the user for input
|
|
219
235
|
cliResults = _d.sent();
|
|
220
|
-
_d.label =
|
|
221
|
-
case
|
|
236
|
+
_d.label = 10;
|
|
237
|
+
case 10:
|
|
222
238
|
// [Internal] Update the cliResults with the options passed in via the command
|
|
223
239
|
// This is used for testing purposes only
|
|
224
240
|
if (options.reactNavigation) {
|
|
@@ -364,7 +380,7 @@ var command = {
|
|
|
364
380
|
info("Initializing your project...");
|
|
365
381
|
info("");
|
|
366
382
|
return [4 /*yield*/, Promise.all(formattedFiles)];
|
|
367
|
-
case
|
|
383
|
+
case 11:
|
|
368
384
|
_d.sent();
|
|
369
385
|
// check if npm option is set, otherwise set based on what the system is configure to use
|
|
370
386
|
// const packageManager = getPackageManager();
|
|
@@ -404,19 +420,19 @@ var command = {
|
|
|
404
420
|
info('yarn');
|
|
405
421
|
info('yarn ios');
|
|
406
422
|
info("");
|
|
407
|
-
_d.label =
|
|
408
|
-
case
|
|
409
|
-
case
|
|
423
|
+
_d.label = 12;
|
|
424
|
+
case 12: return [3 /*break*/, 14];
|
|
425
|
+
case 13:
|
|
410
426
|
error_1 = _d.sent();
|
|
411
427
|
// TODO: delete all files
|
|
412
428
|
info("Oops, something went wrong while creating your project \uD83D\uDE22");
|
|
413
429
|
console.error(error_1);
|
|
414
430
|
info("\nIf this was unexpected, please open an issue: https://github.com/danstepanov/create-expo-stack#reporting-bugs--feedback");
|
|
415
|
-
return [3 /*break*/,
|
|
416
|
-
case
|
|
431
|
+
return [3 /*break*/, 14];
|
|
432
|
+
case 14: return [2 /*return*/];
|
|
417
433
|
}
|
|
418
434
|
});
|
|
419
435
|
}); },
|
|
420
436
|
};
|
|
421
437
|
exports.default = command;
|
|
422
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBZ0Q7QUFDaEQsMENBQTZDO0FBRzdDLDRFQUEyRTtBQUUzRSxJQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztBQVF2QyxJQUFNLGlCQUFpQixHQUFHLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGFBQWEsQ0FBVSxDQUFDO0FBRXJGLElBQU0sVUFBVSxHQUFHLHVzSEFLaUgsQ0FBQztBQWdCckksSUFBTSxjQUFjLEdBQWU7SUFDakMsV0FBVyxFQUFFLGdCQUFnQjtJQUM3QixRQUFRLEVBQUUsRUFBRTtJQUNaLEtBQUssRUFBRTtRQUNMLEtBQUssRUFBRSxLQUFLO1FBQ1osU0FBUyxFQUFFLEtBQUs7UUFDaEIsV0FBVyxFQUFFLElBQUk7S0FDbEI7Q0FDRixDQUFDO0FBRUYsSUFBTSxPQUFPLEdBQW1CO0lBQzlCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsV0FBVyxFQUFFLG1FQUFtRTtJQUNoRixHQUFHLEVBQUUsVUFBTyxPQUFPO1FBUWpCLFNBQWUsTUFBTTs7Ozs7OzRCQUdmLFVBQVUsR0FBRyxjQUFjLENBQUM7NEJBRWhDLCtEQUErRDs0QkFDL0QsSUFBSSxLQUFLLEVBQUU7Z0NBQ1QsVUFBVSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7NkJBQ2hDO2lDQUdHLENBQUMsS0FBSyxFQUFOLHdCQUFNOzRCQUNGLE9BQU8sR0FBRztnQ0FDZCxJQUFJLEVBQUUsT0FBTztnQ0FDYixJQUFJLEVBQUUsTUFBTTtnQ0FDWixPQUFPLEVBQUUsc0RBQXNEOzZCQUNoRSxDQUFBOzRCQUNnQixxQkFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUE7OzRCQUEzQixTQUFT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
|
|
438
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBZ0Q7QUFDaEQsMENBQTZDO0FBQzdDLCtCQUFrQztBQUVsQyw4RUFBOEU7QUFFOUUsSUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUM7QUFFckMsSUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQUM7QUFRdkMsSUFBTSxpQkFBaUIsR0FBRyxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxhQUFhLENBQVUsQ0FBQztBQWdCckYsSUFBTSxjQUFjLEdBQWU7SUFDakMsV0FBVyxFQUFFLGdCQUFnQjtJQUM3QixRQUFRLEVBQUUsRUFBRTtJQUNaLEtBQUssRUFBRTtRQUNMLEtBQUssRUFBRSxLQUFLO1FBQ1osU0FBUyxFQUFFLEtBQUs7UUFDaEIsV0FBVyxFQUFFLElBQUk7S0FDbEI7Q0FDRixDQUFDO0FBRUYsSUFBTSxPQUFPLEdBQW1CO0lBQzlCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsV0FBVyxFQUFFLG1FQUFtRTtJQUNoRixHQUFHLEVBQUUsVUFBTyxPQUFPO1FBUWpCLFNBQWUsTUFBTTs7Ozs7OzRCQUdmLFVBQVUsR0FBRyxjQUFjLENBQUM7NEJBRWhDLCtEQUErRDs0QkFDL0QsSUFBSSxLQUFLLEVBQUU7Z0NBQ1QsVUFBVSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7NkJBQ2hDO2lDQUdHLENBQUMsS0FBSyxFQUFOLHdCQUFNOzRCQUNGLE9BQU8sR0FBRztnQ0FDZCxJQUFJLEVBQUUsT0FBTztnQ0FDYixJQUFJLEVBQUUsTUFBTTtnQ0FDWixPQUFPLEVBQUUsc0RBQXNEOzZCQUNoRSxDQUFBOzRCQUNnQixxQkFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUE7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
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
<% if (props.useNativewind) {%>
|
|
4
|
+
import { Text, View } from 'react-native';
|
|
5
|
+
<% } else {%>
|
|
6
|
+
import { StyleSheet, Text, View } from 'react-native';
|
|
7
|
+
<% } %>
|
|
8
|
+
import { StatusBar } from 'expo-status-bar';
|
|
9
|
+
|
|
10
|
+
<% if (props.useNativewind) {%>
|
|
11
|
+
export default function App() {
|
|
12
|
+
return (
|
|
13
|
+
<View className={styles.container} %>>
|
|
14
|
+
<Text>Open up App.tsx to start working on your app!</Text>
|
|
15
|
+
<StatusBar style="auto" />
|
|
16
|
+
</View>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const styles = {
|
|
21
|
+
container: 'flex flex-1 items-center justify-center bg-white',
|
|
22
|
+
};
|
|
23
|
+
<% } else {%>
|
|
24
|
+
export default function App() {
|
|
25
|
+
return (
|
|
26
|
+
<View style={styles.container} %>>
|
|
27
|
+
<Text>Open up App.tsx to start working on your app!</Text>
|
|
28
|
+
<StatusBar style="auto" />
|
|
29
|
+
</View>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const styles = StyleSheet.create({
|
|
34
|
+
container: {
|
|
35
|
+
flex: 1,
|
|
36
|
+
backgroundColor: '#fff',
|
|
37
|
+
alignItems: 'center',
|
|
38
|
+
justifyContent: 'center',
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
<% } %>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"expo": {
|
|
3
|
+
"name": "<%= props.projectName %>",
|
|
4
|
+
"slug": "<%= props.projectName %>",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
<% if (props.navigationPackage?.name === 'expo-router') { %>
|
|
7
|
+
"scheme": "<%= props.projectName %>",
|
|
8
|
+
"web": {
|
|
9
|
+
"bundler": "metro",
|
|
10
|
+
"output": "static",
|
|
11
|
+
"favicon": "./assets/favicon.png"
|
|
12
|
+
},
|
|
13
|
+
"plugins": ["expo-router"],
|
|
14
|
+
"experiments": {
|
|
15
|
+
"typedRoutes": true
|
|
16
|
+
},
|
|
17
|
+
<% } else { %>
|
|
18
|
+
"web": {
|
|
19
|
+
"favicon": "./assets/favicon.png"
|
|
20
|
+
},
|
|
21
|
+
<% } %>
|
|
22
|
+
"orientation": "portrait",
|
|
23
|
+
"icon": "./assets/icon.png",
|
|
24
|
+
"userInterfaceStyle": "light",
|
|
25
|
+
"splash": {
|
|
26
|
+
"image": "./assets/splash.png",
|
|
27
|
+
"resizeMode": "contain",
|
|
28
|
+
"backgroundColor": "#ffffff"
|
|
29
|
+
},
|
|
30
|
+
"assetBundlePatterns": [
|
|
31
|
+
"**/*"
|
|
32
|
+
],
|
|
33
|
+
"ios": {
|
|
34
|
+
"supportsTablet": true
|
|
35
|
+
},
|
|
36
|
+
"android": {
|
|
37
|
+
"adaptiveIcon": {
|
|
38
|
+
"foregroundImage": "./assets/adaptive-icon.png",
|
|
39
|
+
"backgroundColor": "#ffffff"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module.exports = function(api) {
|
|
2
|
+
api.cache(true);
|
|
3
|
+
let plugins = [];
|
|
4
|
+
|
|
5
|
+
<% if (props.useNativewind) { %>
|
|
6
|
+
plugins.push('nativewind/babel');
|
|
7
|
+
<% } %>
|
|
8
|
+
|
|
9
|
+
<% if (props.navigationPackage?.name === 'expo-router') { %>
|
|
10
|
+
plugins.push('expo-router/babel');
|
|
11
|
+
<% } %>
|
|
12
|
+
|
|
13
|
+
return {
|
|
14
|
+
presets: ['babel-preset-expo'],
|
|
15
|
+
plugins: plugins,
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "<%= props.projectName %>",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"android": "expo start --android",
|
|
6
|
+
"format": "eslint \"**/*.{js,jsx,ts,tsx}\" --fix && prettier \"**/*.{js,jsx,ts,tsx,json}\" --write",
|
|
7
|
+
"ios": "expo start --ios",
|
|
8
|
+
"start": "expo start",
|
|
9
|
+
"web": "expo start --web"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
<% if (props.useNativewind) { %>
|
|
13
|
+
"nativewind": "^2.0.11",
|
|
14
|
+
<% } %>
|
|
15
|
+
|
|
16
|
+
<% if (props.navigationPackage?.type === "navigation") { %>
|
|
17
|
+
"@react-navigation/native": "^6.1.7",
|
|
18
|
+
"react-native-gesture-handler": "~2.12.0",
|
|
19
|
+
"react-native-safe-area-context": "4.6.3",
|
|
20
|
+
"react-native-screens": "~3.22.0",
|
|
21
|
+
<% } %>
|
|
22
|
+
|
|
23
|
+
<% if (props.navigationPackage?.name === "react-navigation") { %>
|
|
24
|
+
"@react-navigation/stack": "^6.3.17",
|
|
25
|
+
<% } %>
|
|
26
|
+
|
|
27
|
+
<% if (props.navigationPackage?.options === "tabs" && props.navigationPackage?.name === "react-navigation") { %>
|
|
28
|
+
"@react-navigation/bottom-tabs": "^6.5.8",
|
|
29
|
+
<% } %>
|
|
30
|
+
|
|
31
|
+
<% if (props.navigationPackage?.name === "expo-router") { %>
|
|
32
|
+
"@expo/vector-icons": "^13.0.0",
|
|
33
|
+
"expo-linking": "~5.0.2",
|
|
34
|
+
"expo-router": "^2.0.0",
|
|
35
|
+
"expo-system-ui": "~2.4.0",
|
|
36
|
+
"expo-web-browser": "~12.3.2",
|
|
37
|
+
"react-dom": "18.2.0",
|
|
38
|
+
"react-native-web": "~0.19.6",
|
|
39
|
+
<% } %>
|
|
40
|
+
|
|
41
|
+
"expo": "~49.0.11",
|
|
42
|
+
"expo-status-bar": "~1.6.0",
|
|
43
|
+
"react": "18.2.0",
|
|
44
|
+
"react-native": "0.72.4"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@babel/core": "^7.20.0",
|
|
48
|
+
"@types/react": "~18.2.14",
|
|
49
|
+
"@typescript-eslint/eslint-plugin": "^6.7.2",
|
|
50
|
+
"@typescript-eslint/parser": "^6.7.2",
|
|
51
|
+
"eslint": "^8.50.0",
|
|
52
|
+
"eslint-config-universe": "^12.0.0",
|
|
53
|
+
"prettier": "^3.0.3",
|
|
54
|
+
<% if (props.useNativewind) { %>
|
|
55
|
+
"tailwindcss": "3.3.2",
|
|
56
|
+
<% } %>
|
|
57
|
+
"typescript": "^5.1.3"
|
|
58
|
+
},
|
|
59
|
+
"eslintConfig": {
|
|
60
|
+
"extends": "universe/native"
|
|
61
|
+
},
|
|
62
|
+
<% if (props.navigationPackage?.name === 'expo-router') { %>
|
|
63
|
+
"resolutions": {
|
|
64
|
+
"metro": "0.76.0",
|
|
65
|
+
"metro-resolver": "0.76.0"
|
|
66
|
+
},
|
|
67
|
+
"overrides": {
|
|
68
|
+
"metro": "0.76.0",
|
|
69
|
+
"metro-resolver": "0.76.0"
|
|
70
|
+
},
|
|
71
|
+
<% } else { %>
|
|
72
|
+
"main": "node_modules/expo/AppEntry.js",
|
|
73
|
+
<% } %>
|
|
74
|
+
"private": true
|
|
75
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "expo/tsconfig.base",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"strict": true
|
|
5
|
+
<% if (props.navigationPackage?.name === 'expo-router') { %>
|
|
6
|
+
},
|
|
7
|
+
"include": [
|
|
8
|
+
"**/*.ts",
|
|
9
|
+
"**/*.tsx",
|
|
10
|
+
".expo/types/**/*.ts",
|
|
11
|
+
"expo-env.d.ts"
|
|
12
|
+
]
|
|
13
|
+
<% } else { %>
|
|
14
|
+
}
|
|
15
|
+
<% } %>
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "expo-router/entry";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Learn more https://docs.expo.io/guides/customizing-metro
|
|
2
|
+
const { getDefaultConfig } = require('expo/metro-config');
|
|
3
|
+
|
|
4
|
+
/** @type {import('expo/metro-config').MetroConfig} */
|
|
5
|
+
// eslint-disable-next-line no-undef
|
|
6
|
+
const config = getDefaultConfig(__dirname, {
|
|
7
|
+
// [Web-only]: Enables CSS support in Metro.
|
|
8
|
+
isCSSEnabled: true,
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
module.exports = config;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Feather } from "@expo/vector-icons";
|
|
2
|
+
import { Stack, useRouter } from "expo-router";
|
|
3
|
+
<% if (props.useNativewind) { %>
|
|
4
|
+
import { Text, TouchableOpacity, View } from "react-native";
|
|
5
|
+
<% } else { %>
|
|
6
|
+
import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
|
|
7
|
+
<% } %>
|
|
8
|
+
|
|
9
|
+
export default function Layout() {
|
|
10
|
+
const router = useRouter();
|
|
11
|
+
<% if (props.useNativewind) { %>
|
|
12
|
+
const BackButton = () => (
|
|
13
|
+
<TouchableOpacity onPress={router.back}>
|
|
14
|
+
<View className={styles.backButton}>
|
|
15
|
+
<Feather name="chevron-left" size={16} color="#007AFF" />
|
|
16
|
+
<Text className={styles.backButtonText}>Back</Text>
|
|
17
|
+
</View>
|
|
18
|
+
</TouchableOpacity>
|
|
19
|
+
);
|
|
20
|
+
<% } else { %>
|
|
21
|
+
const BackButton = () => (
|
|
22
|
+
<TouchableOpacity onPress={router.back}>
|
|
23
|
+
<View style={styles.backButton}>
|
|
24
|
+
<Feather name="chevron-left" size={16} color="#007AFF" />
|
|
25
|
+
<Text style={styles.backButtonText}>Back</Text>
|
|
26
|
+
</View>
|
|
27
|
+
</TouchableOpacity>
|
|
28
|
+
);
|
|
29
|
+
<% } %>
|
|
30
|
+
|
|
31
|
+
return (
|
|
32
|
+
<Stack>
|
|
33
|
+
<Stack.Screen name="index" options={{ title: "Overview" }} />
|
|
34
|
+
<Stack.Screen name="details"
|
|
35
|
+
options={{ title: "Details", headerLeft: () => <BackButton /> }}
|
|
36
|
+
/>
|
|
37
|
+
</Stack>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
<% if (props.useNativewind) { %>
|
|
42
|
+
const styles = {
|
|
43
|
+
backButton: "flex-row",
|
|
44
|
+
backButtonText: "text-blue-500 ml-1",
|
|
45
|
+
};
|
|
46
|
+
<% } else { %>
|
|
47
|
+
const styles = StyleSheet.create({
|
|
48
|
+
backButton: {
|
|
49
|
+
flexDirection: "row",
|
|
50
|
+
},
|
|
51
|
+
backButtonText: {
|
|
52
|
+
color: "#007AFF",
|
|
53
|
+
marginLeft: 4,
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
<% } %>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<% if (props.useNativewind) { %>
|
|
2
|
+
import { View, Text } from "react-native";
|
|
3
|
+
<% } else { %>
|
|
4
|
+
import { StyleSheet, View, Text } from "react-native";
|
|
5
|
+
<% } %>
|
|
6
|
+
import { useLocalSearchParams } from "expo-router";
|
|
7
|
+
|
|
8
|
+
export default function Details() {
|
|
9
|
+
const { name } = useLocalSearchParams();
|
|
10
|
+
<% if (props.useNativewind) { %>
|
|
11
|
+
return (
|
|
12
|
+
<View className={styles.container}>
|
|
13
|
+
<View className={styles.main}>
|
|
14
|
+
<Text className={styles.title}>Details</Text>
|
|
15
|
+
<Text className={styles.subtitle}>Showing details for user {name}.</Text>
|
|
16
|
+
</View>
|
|
17
|
+
</View>
|
|
18
|
+
);
|
|
19
|
+
<% } else { %>
|
|
20
|
+
return (
|
|
21
|
+
<View style={styles.container}>
|
|
22
|
+
<View style={styles.main}>
|
|
23
|
+
<Text style={styles.title}>Details</Text>
|
|
24
|
+
<Text style={styles.subtitle}>Showing details for user {name}.</Text>
|
|
25
|
+
</View>
|
|
26
|
+
</View>
|
|
27
|
+
);
|
|
28
|
+
<% } %>
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
<% if (props.useNativewind) { %>
|
|
32
|
+
const styles = {
|
|
33
|
+
container: "flex-1 p-6",
|
|
34
|
+
main: "flex-1 max-w-[960]",
|
|
35
|
+
title: "text-[64px] font-bold",
|
|
36
|
+
subtitle: "text-4xl text-gray-700",
|
|
37
|
+
};
|
|
38
|
+
<% } else { %>
|
|
39
|
+
const styles = StyleSheet.create({
|
|
40
|
+
container: {
|
|
41
|
+
flex: 1,
|
|
42
|
+
padding: 24,
|
|
43
|
+
},
|
|
44
|
+
main: {
|
|
45
|
+
flex: 1,
|
|
46
|
+
maxWidth: 960,
|
|
47
|
+
marginHorizontal: "auto",
|
|
48
|
+
},
|
|
49
|
+
title: {
|
|
50
|
+
fontSize: 64,
|
|
51
|
+
fontWeight: "bold",
|
|
52
|
+
},
|
|
53
|
+
subtitle: {
|
|
54
|
+
fontSize: 36,
|
|
55
|
+
color: "#38434D",
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
<% } %>
|