create-expo-stack 0.0.15 → 0.1.0

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.
@@ -40,15 +40,20 @@ var command = {
40
40
  name: 'create-expo-stack',
41
41
  description: 'Create an expo app, the right way.',
42
42
  run: function (toolbox) { return __awaiter(void 0, void 0, void 0, function () {
43
- var print, parameters, system, prompt, projectName, askName, name_1, useTypescript, useExpoRouter, useNativewind, githubRepo, branch, error_1;
43
+ var print, parameters, system, prompt, projectName, useExpoRouter, useReactNavigation, navigation, navigationType, branch, askName, name_1, useTypescript, askNavigation, askNavigationType, navigationSelect, navigationTypeSelect, useNativewind, githubRepo, error_1;
44
44
  return __generator(this, function (_a) {
45
45
  switch (_a.label) {
46
46
  case 0:
47
47
  print = toolbox.print, parameters = toolbox.parameters, system = toolbox.system, prompt = toolbox.prompt;
48
48
  projectName = parameters.first;
49
+ useExpoRouter = false;
50
+ useReactNavigation = false;
51
+ navigation = '';
52
+ navigationType = '';
53
+ branch = 'blank';
49
54
  _a.label = 1;
50
55
  case 1:
51
- _a.trys.push([1, 8, , 9]);
56
+ _a.trys.push([1, 11, , 12]);
52
57
  if (!!projectName) return [3 /*break*/, 3];
53
58
  askName = {
54
59
  type: 'input',
@@ -67,19 +72,43 @@ var command = {
67
72
  print.success('Good call, now using TypeScript! 🚀');
68
73
  }
69
74
  else {
70
- print.success("Got it, we'll use JavaScript.");
75
+ print.success("Wrong answer, we're gonna use Typescript.");
71
76
  }
72
- return [4 /*yield*/, prompt.confirm('Would you like to include navigation via Expo Router (recommended)?', true)];
77
+ askNavigation = {
78
+ type: 'select',
79
+ name: 'navigationSelect',
80
+ message: 'What would you like to use for Navigation?',
81
+ choices: ['React Navigation', 'Expo Router', 'None'],
82
+ };
83
+ askNavigationType = {
84
+ type: 'select',
85
+ name: 'navigationTypeSelect',
86
+ message: 'What type of navigation would you like to use?',
87
+ choices: ['Stack', 'Tab'],
88
+ };
89
+ return [4 /*yield*/, prompt.ask(askNavigation)];
73
90
  case 5:
74
- useExpoRouter = _a.sent();
75
- if (useExpoRouter) {
76
- print.success("Great, we'll set up a Tab Navigator!");
91
+ navigationSelect = (_a.sent()).navigationSelect;
92
+ if (!(navigationSelect !== 'None')) return [3 /*break*/, 7];
93
+ return [4 /*yield*/, prompt.ask(askNavigationType)];
94
+ case 6:
95
+ navigationTypeSelect = (_a.sent()).navigationTypeSelect;
96
+ navigationType = navigationTypeSelect.toLowerCase();
97
+ if (navigationSelect === 'React Navigation') {
98
+ useReactNavigation = true;
99
+ navigation = 'react-navigation';
77
100
  }
78
101
  else {
79
- print.success("No problem, skipping navigation for now.");
102
+ useExpoRouter = true;
103
+ navigation = 'expo-router';
80
104
  }
81
- return [4 /*yield*/, prompt.confirm('Would you like to use NativeWind (Tailwind for RN) with this project?', true)];
82
- case 6:
105
+ print.success("Great, we'll use ".concat(navigationSelect, "!"));
106
+ return [3 /*break*/, 8];
107
+ case 7:
108
+ print.success("No problem, skipping navigation for now.");
109
+ _a.label = 8;
110
+ case 8: return [4 /*yield*/, prompt.confirm('Would you like to use NativeWind (Tailwind for RN) with this project?', true)];
111
+ case 9:
83
112
  useNativewind = _a.sent();
84
113
  if (useNativewind) {
85
114
  print.success("You'll be styling with ease using Tailwind.");
@@ -88,53 +117,36 @@ var command = {
88
117
  print.success("Sounds good, you can use StyleSheet instead.");
89
118
  }
90
119
  githubRepo = 'https://github.com/danstepanov/create-expo-stack.git';
91
- branch = 'blank';
92
- if (useTypescript && useExpoRouter && useNativewind) {
93
- branch = 'with-typescript-navigation-nativewind';
94
- }
95
- if (!useTypescript) {
96
- if (useExpoRouter && useNativewind) {
97
- branch = 'with-navigation-nativewind';
98
- }
99
- else if (useExpoRouter) {
100
- branch = 'with-navigation';
101
- }
102
- else if (useNativewind) {
103
- branch = 'with-nativewind';
104
- }
120
+ if (!useExpoRouter && !useReactNavigation && !useNativewind) {
121
+ branch = 'base';
105
122
  }
106
- if (!useExpoRouter) {
107
- if (useNativewind) {
108
- branch = 'with-typescript-nativewind';
109
- }
110
- else if (useTypescript) {
111
- branch = 'with-typescript';
112
- }
123
+ else if (!useExpoRouter && !useReactNavigation && useNativewind) {
124
+ branch = 'with-typescript-nativewind';
113
125
  }
114
- if (!useNativewind && useTypescript && useExpoRouter) {
115
- branch = 'with-typescript-navigation';
126
+ else if (useNativewind) {
127
+ branch = "with-typescript-".concat(navigation, "-").concat(navigationType, "-nativewind");
116
128
  }
117
- if (!useTypescript && !useExpoRouter && !useNativewind) {
118
- branch = 'blank';
129
+ else {
130
+ branch = "with-typescript-".concat(navigation, "-").concat(navigationType);
119
131
  }
120
132
  print.info("Initializing your project...");
121
133
  return [4 /*yield*/, system.run("git clone --single-branch --branch ".concat(branch, " ").concat(githubRepo, " ").concat(projectName, " && cd ").concat(projectName, " && git branch -m ").concat(branch, " main && git remote remove origin"))];
122
- case 7:
134
+ case 10:
123
135
  _a.sent();
124
136
  print.success('Success! 🎉 Now, just run the following to get started: ');
125
137
  print.info("cd ".concat(projectName));
126
138
  print.info('yarn');
127
139
  print.info('yarn ios');
128
- return [3 /*break*/, 9];
129
- case 8:
140
+ return [3 /*break*/, 12];
141
+ case 11:
130
142
  error_1 = _a.sent();
131
143
  print.error("Oops, unable to create your project \uD83D\uDE22");
132
144
  print.info("\nIf this was unexpected, please open an issue: https://github.com/danstepanov/create-expo-stack#reporting-bugs--feedback");
133
- return [3 /*break*/, 9];
134
- case 9: return [2 /*return*/];
145
+ return [3 /*break*/, 12];
146
+ case 12: return [2 /*return*/];
135
147
  }
136
148
  });
137
149
  }); },
138
150
  };
139
151
  module.exports = command;
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNLE9BQU8sR0FBbUI7SUFDOUIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixXQUFXLEVBQUUsb0NBQW9DO0lBQ2pELEdBQUcsRUFBRSxVQUFPLE9BQU87Ozs7O29CQUNULEtBQUssR0FBaUMsT0FBTyxNQUF4QyxFQUFFLFVBQVUsR0FBcUIsT0FBTyxXQUE1QixFQUFFLE1BQU0sR0FBYSxPQUFPLE9BQXBCLEVBQUUsTUFBTSxHQUFLLE9BQU8sT0FBWixDQUFZO29CQUVqRCxXQUFXLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQTs7Ozt5QkFHNUIsQ0FBQyxXQUFXLEVBQVosd0JBQVk7b0JBQ1IsT0FBTyxHQUFHO3dCQUNkLElBQUksRUFBRSxPQUFPO3dCQUNiLElBQUksRUFBRSxNQUFNO3dCQUNaLE9BQU8sRUFBRSxzREFBc0Q7cUJBQ2hFLENBQUE7b0JBQ2dCLHFCQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUE7O29CQUFsQyxTQUFTLENBQUEsU0FBeUIsQ0FBQSxLQUE5QjtvQkFDWixXQUFXLEdBQUcsTUFBSSxDQUFBOzt3QkFHRSxxQkFBTSxNQUFNLENBQUMsT0FBTyxDQUN4QyxxREFBcUQsRUFDckQsSUFBSSxDQUNMLEVBQUE7O29CQUhLLGFBQWEsR0FBRyxTQUdyQjtvQkFFRCxJQUFJLGFBQWEsRUFBRTt3QkFDakIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFBO3FCQUNyRDt5QkFBTTt3QkFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUE7cUJBQy9DO29CQUVxQixxQkFBTSxNQUFNLENBQUMsT0FBTyxDQUN4Qyxx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
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNLE9BQU8sR0FBbUI7SUFDOUIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixXQUFXLEVBQUUsb0NBQW9DO0lBQ2pELEdBQUcsRUFBRSxVQUFPLE9BQU87Ozs7O29CQUNULEtBQUssR0FBaUMsT0FBTyxNQUF4QyxFQUFFLFVBQVUsR0FBcUIsT0FBTyxXQUE1QixFQUFFLE1BQU0sR0FBYSxPQUFPLE9BQXBCLEVBQUUsTUFBTSxHQUFLLE9BQU8sT0FBWixDQUFZO29CQUVqRCxXQUFXLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQTtvQkFDOUIsYUFBYSxHQUFHLEtBQUssQ0FBQTtvQkFDckIsa0JBQWtCLEdBQUcsS0FBSyxDQUFBO29CQUMxQixVQUFVLEdBQUcsRUFBRSxDQUFBO29CQUNmLGNBQWMsR0FBRyxFQUFFLENBQUE7b0JBQ25CLE1BQU0sR0FBRyxPQUFPLENBQUE7Ozs7eUJBR2QsQ0FBQyxXQUFXLEVBQVosd0JBQVk7b0JBQ1IsT0FBTyxHQUFHO3dCQUNkLElBQUksRUFBRSxPQUFPO3dCQUNiLElBQUksRUFBRSxNQUFNO3dCQUNaLE9BQU8sRUFBRSxzREFBc0Q7cUJBQ2hFLENBQUE7b0JBQ2dCLHFCQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUE7O29CQUFsQyxTQUFTLENBQUEsU0FBeUIsQ0FBQSxLQUE5QjtvQkFDWixXQUFXLEdBQUcsTUFBSSxDQUFBOzt3QkFJRSxxQkFBTSxNQUFNLENBQUMsT0FBTyxDQUN4QyxxREFBcUQsRUFDckQsSUFBSSxDQUNMLEVBQUE7O29CQUhLLGFBQWEsR0FBRyxTQUdyQjtvQkFFRCxJQUFJLGFBQWEsRUFBRTt3QkFDakIs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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-expo-stack",
3
- "version": "0.0.15",
3
+ "version": "0.1.0",
4
4
  "description": "create-expo-stack CLI",
5
5
  "private": false,
6
6
  "types": "build/types/types.d.ts",
package/readme.md CHANGED
@@ -12,6 +12,8 @@ To get started, use npx to run the CLI tool. You will be prompted to opt into th
12
12
 
13
13
  `npx create-expo-stack@latest`
14
14
 
15
+ ![](https://github.com/danstepanov/create-expo-stack/assets/5482800/9338f907-3a42-4fbb-ad16-eb4edd2439bb)
16
+
15
17
  ## Tech Stack for the templates
16
18
 
17
19
  Currently, all of the [templates](https://github.com/danstepanov/create-expo-stack) use the same versions of the following libraries. Not all of the templates include all of the libraries, but they are all available for use.