create-expo-stack 2.1.21 → 2.1.22
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/bin/create-expo-stack.js +2 -0
- package/build/cli.js +6 -4
- package/build/commands/create-expo-stack.js +51 -19
- package/build/constants.js +4 -4
- package/build/templates/packages/expo-router/expo-env.d.ts +1 -1
- package/build/templates/packages/expo-router/index.js +1 -1
- package/build/templates/packages/expo-router/index.ts +1 -1
- package/build/templates/packages/expo-router/metro.config.js +3 -3
- package/build/templates/packages/expo-router/stack/app/_layout.tsx.ejs +69 -71
- package/build/templates/packages/expo-router/stack/app/details.tsx.ejs +56 -56
- package/build/templates/packages/expo-router/stack/app/index.tsx.ejs +97 -97
- package/build/templates/packages/nativewind/app.d.ts +1 -1
- package/build/templates/packages/react-navigation/App.tsx.ejs +27 -27
- package/build/templates/packages/react-navigation/navigation/index.tsx.ejs +109 -95
- package/build/templates/packages/react-navigation/screens/details.tsx.ejs +60 -57
- package/build/templates/packages/react-navigation/screens/overview.tsx.ejs +98 -95
- package/build/templates/packages/tamagui/tamagui.config.ts.ejs +48 -42
- package/build/types/cli.d.ts +4 -1
- package/build/types/constants.d.ts +1 -1
- package/build/types/templates/packages/expo-router/index.d.ts +1 -1
- package/build/types/types.d.ts +2 -2
- package/build/types/utilities/configureProjectFiles.d.ts +2 -2
- package/build/types/utilities/generateProjectFiles.d.ts +2 -2
- package/build/types/utilities/getPackageManager.d.ts +2 -2
- package/build/types/utilities/index.d.ts +9 -9
- package/build/types/utilities/printOutput.d.ts +2 -2
- package/build/types/utilities/renderTitle.d.ts +1 -1
- package/build/types/utilities/runCLI.d.ts +2 -2
- package/build/types/utilities/runIgnite.d.ts +1 -1
- package/build/types/utilities/usePackage.d.ts +1 -1
- package/build/types.js +11 -2
- package/build/utilities/bumpVersion.js +1 -1
- package/build/utilities/configureProjectFiles.js +8 -12
- package/build/utilities/generateProjectFiles.js +5 -5
- package/build/utilities/getPackageManager.js +9 -10
- package/build/utilities/index.js +1 -1
- package/build/utilities/printOutput.js +4 -3
- package/build/utilities/renderTitle.js +15 -13
- package/build/utilities/runCLI.js +14 -14
- package/build/utilities/runIgnite.js +1 -1
- package/build/utilities/showHelp.js +29 -29
- package/build/utilities/usePackage.js +1 -1
- package/package.json +36 -48
- package/LICENSE +0 -21
- package/bin/create-expo-stack +0 -21
- package/build/extensions/cli-extension.js +0 -17
- package/build/types/extensions/cli-extension.d.ts +0 -1
- package/docs/commands.md +0 -3
- package/docs/plugins.md +0 -49
- package/readme.md +0 -104
|
@@ -49,7 +49,9 @@ function printOutput(cliResults, formattedFiles, toolbox) {
|
|
|
49
49
|
// Output the results to the user
|
|
50
50
|
info("");
|
|
51
51
|
info("Initializing your project...");
|
|
52
|
-
return [4 /*yield*/, Promise.all(formattedFiles)
|
|
52
|
+
return [4 /*yield*/, Promise.all(formattedFiles)
|
|
53
|
+
// check if npm option is set, otherwise set based on what the system is configure to use
|
|
54
|
+
];
|
|
53
55
|
case 1:
|
|
54
56
|
_b.sent();
|
|
55
57
|
packageManager = (0, getPackageManager_1.getPackageManager)(toolbox);
|
|
@@ -91,7 +93,6 @@ function printOutput(cliResults, formattedFiles, toolbox) {
|
|
|
91
93
|
_b.sent();
|
|
92
94
|
_b.label = 6;
|
|
93
95
|
case 6:
|
|
94
|
-
;
|
|
95
96
|
success('Success! 🎉 Now, just run the following to get started: ');
|
|
96
97
|
info("");
|
|
97
98
|
info("cd ".concat(projectName));
|
|
@@ -122,4 +123,4 @@ function printOutput(cliResults, formattedFiles, toolbox) {
|
|
|
122
123
|
});
|
|
123
124
|
}
|
|
124
125
|
exports.printOutput = printOutput;
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnRPdXRwdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL3ByaW50T3V0cHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLHlEQUF1RDtBQUd2RCxTQUFzQixXQUFXLENBQy9CLFVBQXNCLEVBQ3RCLGNBQXFCLEVBQ3JCLE9BQWdCOzs7Ozs7b0JBR0EsT0FBTyxHQUduQixPQUFPLG1CQUhZLEVBQ3JCLEtBRUUsT0FBTyxNQUZlLEVBQWYsSUFBSSxVQUFBLEVBQUUsT0FBTyxhQUFBLEVBQ3RCLE1BQU0sR0FDSixPQUFPLE9BREgsQ0FDRztvQkFFSCxXQUFXLEdBQVksVUFBVSxZQUF0QixFQUFFLEtBQUssR0FBSyxVQUFVLE1BQWYsQ0FBZTtvQkFFekMsaUNBQWlDO29CQUNqQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7b0JBQ1IsSUFBSSxDQUFDLDhCQUE4QixDQUFDLENBQUE7b0JBRXBDLHFCQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO3dCQUVqQyx5RkFBeUY7c0JBRnhEOztvQkFBakMsU0FBaUMsQ0FBQTtvQkFHM0IsY0FBYyxHQUFHLElBQUEscUNBQWlCLEVBQUMsT0FBTyxDQUFDLENBQUE7eUJBRTdDLENBQUEsQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQSxFQUF0Qyx3QkFBc0M7b0JBQ3hDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtvQkFDUixJQUFJLENBQUMsd0NBQWlDLGNBQWMsUUFBSyxDQUFDLENBQUE7b0JBQzFELElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtvQkFFUiw2QkFBNkI7b0JBQzdCLHFCQUFNLE1BQU0sQ0FBQyxLQUFLLENBQ2hCLGFBQU0sV0FBVyxpQkFBTyxjQUFjLHNCQUFtQixFQUN6RDs0QkFDRSxLQUFLLEVBQUUsSUFBSTs0QkFDWCxLQUFLLEVBQUUsU0FBUzt5QkFDakIsQ0FDRixFQUFBOztvQkFQRCw2QkFBNkI7b0JBQzdCLFNBTUMsQ0FBQTs7O29CQUdILElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtvQkFDUixJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtvQkFFbkMsbUJBQW1CO29CQUNuQixxQkFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQU0sV0FBVyxpQkFBTyxjQUFjLGdCQUFhLEVBQUU7NEJBQ3RFLEtBQUssRUFBRSxJQUFJOzRCQUNYLEtBQUssRUFBRSxTQUFTO3lCQUNqQixDQUFDLEVBQUE7O29CQUpGLG1CQUFtQjtvQkFDbkIsU0FHRSxDQUFBO3lCQUVFLENBQUEsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQSxFQUE5Qix3QkFBOEI7b0JBQ2hDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtvQkFDUixJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQTtvQkFDM0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO29CQUVSLDJDQUEyQztvQkFDM0MscUJBQU0sTUFBTSxDQUFDLEtBQUssQ0FDaEIsYUFBTSxXQUFXLCtIQUF3SCxFQUN6STs0QkFDRSxLQUFLLEVBQUUsSUFBSTs0QkFDWCxLQUFLLEVBQUUsU0FBUzt5QkFDakIsQ0FDRixFQUFBOztvQkFQRCwyQ0FBMkM7b0JBQzNDLFNBTUMsQ0FBQTs7O29CQUdILE9BQU8sQ0FBQywwREFBMEQsQ0FBQyxDQUFBO29CQUNuRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7b0JBQ1IsSUFBSSxDQUFDLGFBQU0sV0FBVyxDQUFFLENBQUMsQ0FBQTtvQkFDekIsSUFBSSxjQUFjLEtBQUssS0FBSyxFQUFFO3dCQUM1QixJQUFJLE9BQU8sQ0FBQyxTQUFTOzRCQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTt3QkFDMUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO3FCQUNwQjt5QkFBTSxJQUFJLGNBQWMsS0FBSyxNQUFNLEVBQUU7d0JBQ3BDLElBQUksT0FBTyxDQUFDLFNBQVM7NEJBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO3dCQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7cUJBQ3JCO3lCQUFNLElBQUksY0FBYyxLQUFLLEtBQUssRUFBRTt3QkFDbkMsSUFBSSxPQUFPLENBQUMsU0FBUzs0QkFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7d0JBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtxQkFDcEI7eUJBQU07d0JBQ0wsSUFBSSxPQUFPLENBQUMsU0FBUzs0QkFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7d0JBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtxQkFDakI7b0JBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBOzs7OztDQUNUO0FBOUVELGtDQThFQyJ9
|
|
@@ -35,16 +35,19 @@ 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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
38
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
42
|
exports.renderTitle = void 0;
|
|
40
|
-
var
|
|
41
|
-
var
|
|
43
|
+
var figlet_1 = __importDefault(require("figlet"));
|
|
44
|
+
var gradient_string_1 = __importDefault(require("gradient-string"));
|
|
42
45
|
var constants_1 = require("../constants");
|
|
43
46
|
// expo stack orange gradient
|
|
44
47
|
var expoStackTheme = {
|
|
45
|
-
orange:
|
|
46
|
-
between:
|
|
47
|
-
yellow:
|
|
48
|
+
orange: '#f97316',
|
|
49
|
+
between: 'f2940f',
|
|
50
|
+
yellow: '#eab308',
|
|
48
51
|
};
|
|
49
52
|
function renderTitle(toolbox) {
|
|
50
53
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -52,17 +55,17 @@ function renderTitle(toolbox) {
|
|
|
52
55
|
return __generator(this, function (_a) {
|
|
53
56
|
switch (_a.label) {
|
|
54
57
|
case 0:
|
|
55
|
-
cesGradient =
|
|
58
|
+
cesGradient = (0, gradient_string_1.default)(Object.values(expoStackTheme));
|
|
56
59
|
error = toolbox.print.error;
|
|
57
|
-
return [4 /*yield*/,
|
|
58
|
-
font:
|
|
59
|
-
horizontalLayout:
|
|
60
|
-
verticalLayout:
|
|
60
|
+
return [4 /*yield*/, figlet_1.default.text(constants_1.TITLE_TEXT, {
|
|
61
|
+
font: 'Standard',
|
|
62
|
+
horizontalLayout: 'fitted',
|
|
63
|
+
verticalLayout: 'fitted',
|
|
61
64
|
width: 40,
|
|
62
65
|
whitespaceBreak: true,
|
|
63
66
|
}, function (err, data) {
|
|
64
67
|
if (err) {
|
|
65
|
-
error(
|
|
68
|
+
error('Something went wrong...');
|
|
66
69
|
return;
|
|
67
70
|
}
|
|
68
71
|
console.log(cesGradient.multiline(data));
|
|
@@ -75,5 +78,4 @@ function renderTitle(toolbox) {
|
|
|
75
78
|
});
|
|
76
79
|
}
|
|
77
80
|
exports.renderTitle = renderTitle;
|
|
78
|
-
;
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyVGl0bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL3JlbmRlclRpdGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUE2QztBQUM3QywrQkFBa0M7QUFFbEMsMENBQTBDO0FBRzFDLDZCQUE2QjtBQUM3QixJQUFNLGNBQWMsR0FBRztJQUNyQixNQUFNLEVBQUUsU0FBUztJQUNqQixPQUFPLEVBQUUsUUFBUTtJQUNqQixNQUFNLEVBQUUsU0FBUztDQUNsQixDQUFDO0FBRUYsU0FBc0IsV0FBVyxDQUFDLE9BQWdCOzs7Ozs7b0JBQzFDLFdBQVcsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO29CQUdqRCxLQUFLLEdBQ1osT0FBTyxZQURLLENBQ0o7b0JBRVoscUJBQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBVSxFQUFFOzRCQUM1QixJQUFJLEVBQUUsVUFBVTs0QkFDaEIsZ0JBQWdCLEVBQUUsUUFBUTs0QkFDMUIsY0FBYyxFQUFFLFFBQVE7NEJBQ3hCLEtBQUssRUFBRSxFQUFFOzRCQUNULGVBQWUsRUFBRSxJQUFJO3lCQUN0QixFQUNDLFVBQUMsR0FBRyxFQUFFLElBQUk7NEJBQ1IsSUFBSSxHQUFHLEVBQUU7Z0NBQ1AsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7Z0NBRWpDLE9BQU87NkJBQ1I7NEJBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQzNDLENBQUMsQ0FDRixFQUFBOztvQkFoQkQsU0FnQkMsQ0FBQTs7Ozs7Q0FDRjtBQXhCRCxrQ0F3QkM7QUFBQSxDQUFDIn0=
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyVGl0bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL3JlbmRlclRpdGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUEyQjtBQUMzQixvRUFBc0M7QUFFdEMsMENBQXlDO0FBR3pDLDZCQUE2QjtBQUM3QixJQUFNLGNBQWMsR0FBRztJQUNyQixNQUFNLEVBQUUsU0FBUztJQUNqQixPQUFPLEVBQUUsUUFBUTtJQUNqQixNQUFNLEVBQUUsU0FBUztDQUNsQixDQUFBO0FBRUQsU0FBc0IsV0FBVyxDQUFDLE9BQWdCOzs7Ozs7b0JBQzFDLFdBQVcsR0FBRyxJQUFBLHlCQUFRLEVBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFBO29CQUdoRCxLQUFLLEdBQ1osT0FBTyxZQURLLENBQ0w7b0JBRVgscUJBQU0sZ0JBQU0sQ0FBQyxJQUFJLENBQ2Ysc0JBQVUsRUFDVjs0QkFDRSxJQUFJLEVBQUUsVUFBVTs0QkFDaEIsZ0JBQWdCLEVBQUUsUUFBUTs0QkFDMUIsY0FBYyxFQUFFLFFBQVE7NEJBQ3hCLEtBQUssRUFBRSxFQUFFOzRCQUNULGVBQWUsRUFBRSxJQUFJO3lCQUN0QixFQUNELFVBQUMsR0FBRyxFQUFFLElBQUk7NEJBQ1IsSUFBSSxHQUFHLEVBQUU7Z0NBQ1AsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUE7Z0NBRWhDLE9BQU07NkJBQ1A7NEJBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7d0JBQzFDLENBQUMsQ0FDRixFQUFBOztvQkFsQkQsU0FrQkMsQ0FBQTs7Ozs7Q0FDRjtBQTFCRCxrQ0EwQkMifQ==
|
|
@@ -93,20 +93,20 @@ function runCLI(toolbox) {
|
|
|
93
93
|
navigationTypeSelect = (_b.sent()).navigationTypeSelect;
|
|
94
94
|
if (navigationSelect === 'React Navigation') {
|
|
95
95
|
cliResults.packages.push({
|
|
96
|
-
name:
|
|
96
|
+
name: 'react-navigation',
|
|
97
97
|
type: 'navigation',
|
|
98
98
|
options: {
|
|
99
|
-
type: navigationTypeSelect.toLowerCase()
|
|
100
|
-
}
|
|
99
|
+
type: navigationTypeSelect.toLowerCase(),
|
|
100
|
+
},
|
|
101
101
|
});
|
|
102
102
|
}
|
|
103
103
|
else {
|
|
104
104
|
cliResults.packages.push({
|
|
105
|
-
name:
|
|
105
|
+
name: 'expo-router',
|
|
106
106
|
type: 'navigation',
|
|
107
107
|
options: {
|
|
108
|
-
type: navigationTypeSelect.toLowerCase()
|
|
109
|
-
}
|
|
108
|
+
type: navigationTypeSelect.toLowerCase(),
|
|
109
|
+
},
|
|
110
110
|
});
|
|
111
111
|
}
|
|
112
112
|
success("Great, we'll use ".concat(navigationSelect, "!"));
|
|
@@ -116,23 +116,23 @@ function runCLI(toolbox) {
|
|
|
116
116
|
_b.label = 8;
|
|
117
117
|
case 8:
|
|
118
118
|
askStyling = {
|
|
119
|
-
type:
|
|
120
|
-
name:
|
|
121
|
-
message:
|
|
122
|
-
choices: ['tamagui', 'nativewind', 'stylesheet']
|
|
119
|
+
type: 'select',
|
|
120
|
+
name: 'stylingSelect',
|
|
121
|
+
message: 'What would you like to use for styling?',
|
|
122
|
+
choices: ['tamagui', 'nativewind', 'stylesheet'],
|
|
123
123
|
};
|
|
124
124
|
return [4 /*yield*/, ask(askStyling)];
|
|
125
125
|
case 9:
|
|
126
126
|
stylingSelect = (_b.sent()).stylingSelect;
|
|
127
127
|
if (stylingSelect === 'nativewind') {
|
|
128
|
-
cliResults.packages.push({ name:
|
|
128
|
+
cliResults.packages.push({ name: 'nativewind', type: 'styling' });
|
|
129
129
|
success("You'll be styling with ease using Tailwind.");
|
|
130
130
|
}
|
|
131
131
|
else if (stylingSelect === 'tamagui') {
|
|
132
|
-
cliResults.packages.push({ name:
|
|
132
|
+
cliResults.packages.push({ name: 'tamagui', type: 'styling' });
|
|
133
133
|
}
|
|
134
134
|
else {
|
|
135
|
-
cliResults.packages.push({ name:
|
|
135
|
+
cliResults.packages.push({ name: 'stylesheet', type: 'styling' });
|
|
136
136
|
success("Cool, you're using the default StyleSheet that comes with React Native.");
|
|
137
137
|
}
|
|
138
138
|
return [2 /*return*/, cliResults];
|
|
@@ -141,4 +141,4 @@ function runCLI(toolbox) {
|
|
|
141
141
|
});
|
|
142
142
|
}
|
|
143
143
|
exports.runCLI = runCLI;
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuQ0xJLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9ydW5DTEkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsMENBQStEO0FBRy9ELFNBQXNCLE1BQU0sQ0FBQyxPQUFnQjs7Ozs7O29CQUUzQixLQUFLLEdBR2pCLE9BQU8saUJBSFUsRUFDVixPQUFPLEdBRWQsT0FBTyxjQUZPLEVBQ2hCLEtBQ0UsT0FBTyxPQURlLEVBQWQsR0FBRyxTQUFBLEVBQUUsT0FBTyxhQUFBLENBQ2I7b0JBR0wsVUFBVSxHQUFHLDBCQUFjLENBQUE7eUJBRzdCLEtBQUssRUFBTCx3QkFBSztvQkFDUCxVQUFVLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQTs7O29CQUV4QixPQUFPLEdBQUc7d0JBQ2QsSUFBSSxFQUFFLE9BQU87d0JBQ2IsSUFBSSxFQUFFLE1BQU07d0JBQ1osT0FBTyxFQUFFLGtEQUEyQyw0QkFBZ0IsTUFBRztxQkFDeEUsQ0FBQTtvQkFDZ0IscUJBQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFBOztvQkFBM0IsU0FBUyxDQUFBLFNBQWtCLENBQUEsS0FBdkI7b0JBQ1osVUFBVSxDQUFDLFdBQVcsR0FBRyxNQUFJLElBQUksNEJBQWdCLENBQUE7OztvQkFHbkQseUJBQXlCO29CQUN6QixVQUFVLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQTtvQkFFRixxQkFBTSxPQUFPLENBQ2pDLHFEQUFxRCxFQUNyRCxJQUFJLENBQ0wsRUFBQTs7b0JBSEssYUFBYSxHQUFHLFNBR3JCO29CQUVELElBQUksYUFBYSxFQUFFO3dCQUNqQixPQUFPLENBQUMscUNBQXFDLENBQUMsQ0FBQTtxQkFDL0M7eUJBQU07d0JBQ0wsT0FBTyxDQUFDLDJDQUEyQyxDQUFDLENBQUE7cUJBQ3JEO29CQUdLLGFBQWEsR0FBRzt3QkFDcEIsSUFBSSxFQUFFLFFBQVE7d0JB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
|
|
@@ -80,4 +80,4 @@ function runIgnite(toolbox) {
|
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
exports.runIgnite = runIgnite;
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuSWduaXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9ydW5JZ25pdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMENBQStDO0FBQy9DLHlEQUF1RDtBQUV2RCxTQUFzQixTQUFTLENBQUMsT0FBZ0I7Ozs7OztvQkFFOUIsS0FBSyxHQUtqQixPQUFPLGlCQUxVLEVBQ1YsT0FBTyxHQUlkLE9BQU8sY0FKTyxFQUNOLEdBQUcsR0FHWCxPQUFPLFdBSEksRUFDYixNQUFNLEdBRUosT0FBTyxPQUZILEVBQ0ssVUFBVSxHQUNuQixPQUFPLG1CQURZLENBQ1o7eUJBR1AsQ0FBQyxLQUFLLEVBQU4sd0JBQU07b0JBQ0YsT0FBTyxHQUFHO3dCQUNkLElBQUksRUFBRSxPQUFPO3dCQUNiLElBQUksRUFBRSxNQUFNO3dCQUNaLE9BQU8sRUFBRSxrREFBMkMsNEJBQWdCLE1BQUc7cUJBQ3hFLENBQUE7b0JBQ2dCLHFCQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUM7d0JBQ25DLHlEQUF5RDtzQkFEdEI7O29CQUEzQixTQUFTLENBQUEsU0FBa0IsQ0FBQSxLQUF2QjtvQkFDWix5REFBeUQ7b0JBQ3pELFdBQVcsR0FBRyxNQUFJLElBQUksNEJBQWdCLENBQUE7OztvQkFFdEMsV0FBVyxHQUFHLEtBQUssQ0FBQTs7O29CQUdmLGNBQWMsR0FBRyxJQUFBLHFDQUFpQixFQUFDLE9BQU8sQ0FBQyxDQUFBO29CQUczQyxhQUFhLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFBO29CQUV2QyxhQUFhLEdBQUcsY0FBYyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUE7b0JBRWxFLE9BQU8sQ0FBQyxzREFBc0QsQ0FBQyxDQUFBO29CQUMvRCxxQkFBTSxNQUFNLENBQUMsS0FBSyxDQUNoQix5QkFBa0IsYUFBYSxrQkFBUSxhQUFhLHlCQUFlLGNBQWMsV0FBUSxFQUN6Rjs0QkFDRSxLQUFLLEVBQUUsSUFBSTs0QkFDWCxLQUFLLEVBQUUsU0FBUzt5QkFDakIsQ0FDRixFQUFBOztvQkFORCxTQU1DLENBQUE7Ozs7O0NBQ0Y7QUF0Q0QsOEJBc0NDIn0=
|
|
@@ -2,34 +2,34 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.showHelp = void 0;
|
|
4
4
|
function showHelp(info, highlight, warning) {
|
|
5
|
-
info(
|
|
6
|
-
highlight(
|
|
7
|
-
info(
|
|
8
|
-
info(
|
|
9
|
-
highlight(
|
|
10
|
-
warning(
|
|
11
|
-
info(
|
|
12
|
-
highlight(
|
|
13
|
-
info(
|
|
14
|
-
info(
|
|
15
|
-
info(
|
|
16
|
-
info(
|
|
17
|
-
info(
|
|
18
|
-
info(
|
|
19
|
-
info(
|
|
20
|
-
info(
|
|
21
|
-
info(
|
|
22
|
-
info(
|
|
23
|
-
info(
|
|
24
|
-
highlight(
|
|
25
|
-
info(
|
|
26
|
-
info(
|
|
27
|
-
info(
|
|
28
|
-
info(
|
|
29
|
-
info(
|
|
30
|
-
info(
|
|
31
|
-
warning(
|
|
32
|
-
info(
|
|
5
|
+
info('');
|
|
6
|
+
highlight(' Info');
|
|
7
|
+
info(' Creates a new configurable Expo project');
|
|
8
|
+
info('');
|
|
9
|
+
highlight(' Usage');
|
|
10
|
+
warning(' $ npx create-expo-stack <project_name> [options]');
|
|
11
|
+
info('');
|
|
12
|
+
highlight(' Options');
|
|
13
|
+
info(' -d, --default Use the default options for creating a project');
|
|
14
|
+
info(' --noInstall Skip installing npm packages or CocoaPods');
|
|
15
|
+
info(' --noGit Skip initializing a git repository');
|
|
16
|
+
info(' --blank Use the blank typescript template');
|
|
17
|
+
info(' --npm Use npm as the package manager');
|
|
18
|
+
info(' --yarn Use yarn as the package manager');
|
|
19
|
+
info(' --pnpm Use pnpm as the package manager');
|
|
20
|
+
info(' -i, --ignite Use Ignite to create an opinionated stack');
|
|
21
|
+
info(' -v, --version Version number');
|
|
22
|
+
info(' -h, --help Usage info');
|
|
23
|
+
info('');
|
|
24
|
+
highlight(' Non-Interactive Usage');
|
|
25
|
+
info(' If you know the options you want to use, you can pass them in via the');
|
|
26
|
+
info(' command line. This will skip the interactive CLI and use the options');
|
|
27
|
+
info(' you pass in. This is also useful for CI/CD environments.');
|
|
28
|
+
info('');
|
|
29
|
+
info(' For example:');
|
|
30
|
+
info(' ');
|
|
31
|
+
warning(' $ npx create-expo-stack myProject --nonInteractive --react-navigation --stack --nativewind --noInstall');
|
|
32
|
+
info('');
|
|
33
33
|
}
|
|
34
34
|
exports.showHelp = showHelp;
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvd0hlbHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL3Nob3dIZWxwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQWdCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU87SUFDL0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ1IsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ25CLElBQUksQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFBO0lBQ25ELElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNSLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNwQixPQUFPLENBQUMsc0RBQXNELENBQUMsQ0FBQTtJQUMvRCxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDUixTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDdEIsSUFBSSxDQUNGLDBFQUEwRSxDQUMzRSxDQUFBO0lBQ0QsSUFBSSxDQUFDLHFFQUFxRSxDQUFDLENBQUE7SUFDM0UsSUFBSSxDQUFDLDhEQUE4RCxDQUFDLENBQUE7SUFDcEUsSUFBSSxDQUFDLDZEQUE2RCxDQUFDLENBQUE7SUFDbkUsSUFBSSxDQUFDLDBEQUEwRCxDQUFDLENBQUE7SUFDaEUsSUFBSSxDQUFDLDJEQUEyRCxDQUFDLENBQUE7SUFDakUsSUFBSSxDQUFDLDJEQUEyRCxDQUFDLENBQUE7SUFDakUsSUFBSSxDQUFDLHFFQUFxRSxDQUFDLENBQUE7SUFDM0UsSUFBSSxDQUFDLDBDQUEwQyxDQUFDLENBQUE7SUFDaEQsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUE7SUFDNUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ1IsU0FBUyxDQUFDLHlCQUF5QixDQUFDLENBQUE7SUFDcEMsSUFBSSxDQUNGLDJFQUEyRSxDQUM1RSxDQUFBO0lBQ0QsSUFBSSxDQUNGLDBFQUEwRSxDQUMzRSxDQUFBO0lBQ0QsSUFBSSxDQUFDLDhEQUE4RCxDQUFDLENBQUE7SUFDcEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ1IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ1QsT0FBTyxDQUNMLDRHQUE0RyxDQUM3RyxDQUFBO0lBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ1YsQ0FBQztBQXJDRCw0QkFxQ0MifQ==
|
|
@@ -5,4 +5,4 @@ function usePackage(packageName, packages) {
|
|
|
5
5
|
return packages.find(function (p) { return p.name === packageName; }) ? true : false;
|
|
6
6
|
}
|
|
7
7
|
exports.usePackage = usePackage;
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlUGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdXNlUGFja2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxTQUFnQixVQUFVLENBQ3hCLFdBQW1CLEVBQ25CLFFBQTZCO0lBRTdCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUF0QixDQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0FBQ3BFLENBQUM7QUFMRCxnQ0FLQyJ9
|
package/package.json
CHANGED
|
@@ -1,30 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-expo-stack",
|
|
3
|
-
"version": "2.1.
|
|
4
|
-
"description": "
|
|
5
|
-
"private": false,
|
|
6
|
-
"types": "build/types/types.d.ts",
|
|
7
|
-
"bin": {
|
|
8
|
-
"create-expo-stack": "bin/create-expo-stack"
|
|
9
|
-
},
|
|
3
|
+
"version": "2.1.22",
|
|
4
|
+
"description": "CLI tool to initialize a React Native application with Expo",
|
|
10
5
|
"repository": {
|
|
11
6
|
"type": "git",
|
|
12
|
-
"url": "https://github.com/danstepanov/create-expo-stack.git"
|
|
7
|
+
"url": "https://github.com/danstepanov/create-expo-stack.git",
|
|
8
|
+
"directory": "cli"
|
|
13
9
|
},
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
"build": "yarn clean-build && yarn compile && yarn copy-templates && yarn lint-templates",
|
|
19
|
-
"bump": "ts-node ./src/utilities/bumpVersion.ts",
|
|
20
|
-
"prepublishOnly": "yarn build",
|
|
21
|
-
"publishPublic": "yarn build && npm publish --access public",
|
|
22
|
-
"format": "eslint \"**/*.{js,jsx,ts,tsx}\" --fix && prettier \"**/*.{js,jsx,ts,tsx,json}\" --write",
|
|
23
|
-
"lint-templates": "ejslint ./src/templates",
|
|
24
|
-
"test": "jest",
|
|
25
|
-
"watch": "jest --watch",
|
|
26
|
-
"snapupdate": "jest --updateSnapshot",
|
|
27
|
-
"coverage": "jest --coverage"
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"types": "build/types/types.d.ts",
|
|
12
|
+
"bin": {
|
|
13
|
+
"create-expo-stack": "bin/create-expo-stack.js"
|
|
28
14
|
},
|
|
29
15
|
"files": [
|
|
30
16
|
"build",
|
|
@@ -33,7 +19,28 @@
|
|
|
33
19
|
"docs",
|
|
34
20
|
"bin"
|
|
35
21
|
],
|
|
36
|
-
"
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "bun run clean-build && bun run compile && bun run copy-templates && bun run lint-templates",
|
|
24
|
+
"bump": "bun run ./src/utilities/bumpVersion.ts",
|
|
25
|
+
"clean-build": "rm -rf ./build",
|
|
26
|
+
"compile": "tsc -p .",
|
|
27
|
+
"copy-templates": "bun run copyfiles -u 2 -a \"./src/templates/**/*\" ./build/templates",
|
|
28
|
+
"format": "eslint \"**/*.{js,jsx,ts,tsx}\" --fix && prettier \"**/*.{js,jsx,ts,tsx,json}\" --write",
|
|
29
|
+
"lint-templates": "bun run ejslint ./src/templates",
|
|
30
|
+
"prepublishOnly": "bun run build",
|
|
31
|
+
"publishPublic": "bun run build && npm publish --access public",
|
|
32
|
+
"snapupdate": "jest --updateSnapshot",
|
|
33
|
+
"watch": "bun test --watch"
|
|
34
|
+
},
|
|
35
|
+
"husky": {
|
|
36
|
+
"hooks": {
|
|
37
|
+
"pre-commit": "pretty-quick --staged"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"prettier": {
|
|
41
|
+
"semi": false,
|
|
42
|
+
"singleQuote": true
|
|
43
|
+
},
|
|
37
44
|
"dependencies": {
|
|
38
45
|
"ejs-lint": "^2.0.0",
|
|
39
46
|
"figlet": "^1.6.0",
|
|
@@ -42,33 +49,14 @@
|
|
|
42
49
|
},
|
|
43
50
|
"devDependencies": {
|
|
44
51
|
"@types/gradient-string": "^1.1.2",
|
|
45
|
-
"@
|
|
46
|
-
"@
|
|
47
|
-
"@typescript-eslint/eslint-plugin": "^4.17.0",
|
|
48
|
-
"@typescript-eslint/parser": "^4.17.0",
|
|
52
|
+
"@typescript-eslint/eslint-plugin": "^6.9.1",
|
|
53
|
+
"@typescript-eslint/parser": "^6.9.1",
|
|
49
54
|
"copyfiles": "^2.4.1",
|
|
50
|
-
"eslint": "^
|
|
51
|
-
"eslint-config-prettier": "^
|
|
52
|
-
"eslint-plugin-prettier": "^
|
|
55
|
+
"eslint": "^8.53.0",
|
|
56
|
+
"eslint-config-prettier": "^9.0.0",
|
|
57
|
+
"eslint-plugin-prettier": "^5.0.1",
|
|
53
58
|
"husky": "^5.1.3",
|
|
54
|
-
"jest": "^26.6.3",
|
|
55
59
|
"prettier": "^2.2.1",
|
|
56
|
-
"pretty-quick": "^3.1.0"
|
|
57
|
-
"ts-jest": "^26.5.3",
|
|
58
|
-
"ts-node": "^10.9.1",
|
|
59
|
-
"typescript": "^4.2.3"
|
|
60
|
-
},
|
|
61
|
-
"jest": {
|
|
62
|
-
"preset": "ts-jest",
|
|
63
|
-
"testEnvironment": "node"
|
|
64
|
-
},
|
|
65
|
-
"prettier": {
|
|
66
|
-
"semi": false,
|
|
67
|
-
"singleQuote": true
|
|
68
|
-
},
|
|
69
|
-
"husky": {
|
|
70
|
-
"hooks": {
|
|
71
|
-
"pre-commit": "pretty-quick --staged"
|
|
72
|
-
}
|
|
60
|
+
"pretty-quick": "^3.1.0"
|
|
73
61
|
}
|
|
74
62
|
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2017
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
package/bin/create-expo-stack
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
/* tslint:disable */
|
|
5
|
-
// check if we're running in dev mode
|
|
6
|
-
var devMode = require('fs').existsSync(`${__dirname}/../src`)
|
|
7
|
-
// or want to "force" running the compiled version with --compiled-build
|
|
8
|
-
var wantsCompiled = process.argv.indexOf('--compiled-build') >= 0
|
|
9
|
-
|
|
10
|
-
if (wantsCompiled || !devMode) {
|
|
11
|
-
// this runs from the compiled javascript source
|
|
12
|
-
require(`${__dirname}/../build/cli`).run(process.argv)
|
|
13
|
-
} else {
|
|
14
|
-
// this runs from the typescript source (for dev only)
|
|
15
|
-
// hook into ts-node so we can run typescript on the fly
|
|
16
|
-
require('ts-node').register({ project: `${__dirname}/../tsconfig.json` })
|
|
17
|
-
// run the CLI with the current process arguments
|
|
18
|
-
require(`${__dirname}/../src/cli`).run(process.argv)
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
// add your CLI-specific functionality here, which will then be accessible
|
|
4
|
-
// to your commands
|
|
5
|
-
module.exports = function (toolbox) {
|
|
6
|
-
toolbox.foo = function () {
|
|
7
|
-
toolbox.print.info('called foo extension');
|
|
8
|
-
};
|
|
9
|
-
// enable this if you want to read configuration in from
|
|
10
|
-
// the current folder's package.json (in a "create-expo-stack" property),
|
|
11
|
-
// create-expo-stack.config.json, etc.
|
|
12
|
-
// toolbox.config = {
|
|
13
|
-
// ...toolbox.config,
|
|
14
|
-
// ...toolbox.config.loadConfig("create-expo-stack", process.cwd())
|
|
15
|
-
// }
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWV4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL2NsaS1leHRlbnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSwwRUFBMEU7QUFDMUUsbUJBQW1CO0FBQ25CLE1BQU0sQ0FBQyxPQUFPLEdBQUcsVUFBQyxPQUF1QjtJQUN2QyxPQUFPLENBQUMsR0FBRyxHQUFHO1FBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtJQUM1QyxDQUFDLENBQUE7SUFFRCx3REFBd0Q7SUFDeEQseUVBQXlFO0lBQ3pFLHNDQUFzQztJQUN0QyxxQkFBcUI7SUFDckIsdUJBQXVCO0lBQ3ZCLHFFQUFxRTtJQUNyRSxJQUFJO0FBQ04sQ0FBQyxDQUFBIn0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/docs/commands.md
DELETED
package/docs/plugins.md
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# Plugin guide for create-expo-stack
|
|
2
|
-
|
|
3
|
-
Plugins allow you to add features to create-expo-stack, such as commands and
|
|
4
|
-
extensions to the `toolbox` object that provides the majority of the functionality
|
|
5
|
-
used by create-expo-stack.
|
|
6
|
-
|
|
7
|
-
Creating a create-expo-stack plugin is easy. Just create a repo with two folders:
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
commands/
|
|
11
|
-
extensions/
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
A command is a file that looks something like this:
|
|
15
|
-
|
|
16
|
-
```js
|
|
17
|
-
// commands/foo.js
|
|
18
|
-
|
|
19
|
-
module.exports = {
|
|
20
|
-
run: (toolbox) => {
|
|
21
|
-
const { print, filesystem } = toolbox
|
|
22
|
-
|
|
23
|
-
const desktopDirectories = filesystem.subdirectories(`~/Desktop`)
|
|
24
|
-
print.info(desktopDirectories)
|
|
25
|
-
},
|
|
26
|
-
}
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
An extension lets you add additional features to the `toolbox`.
|
|
30
|
-
|
|
31
|
-
```js
|
|
32
|
-
// extensions/bar-extension.js
|
|
33
|
-
|
|
34
|
-
module.exports = (toolbox) => {
|
|
35
|
-
const { print } = toolbox
|
|
36
|
-
|
|
37
|
-
toolbox.bar = () => {
|
|
38
|
-
print.info('Bar!')
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
This is then accessible in your plugin's commands as `toolbox.bar`.
|
|
44
|
-
|
|
45
|
-
# Loading a plugin
|
|
46
|
-
|
|
47
|
-
To load a particular plugin (which has to start with `create-expo-stack-*`),
|
|
48
|
-
install it to your project using `npm install --save-dev create-expo-stack-PLUGINNAME`,
|
|
49
|
-
and create-expo-stack will pick it up automatically.
|
package/readme.md
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
# Create Expo Stack CLI
|
|
2
|
-
|
|
3
|
-
<a href="https://badge.fury.io/js/create-expo-stack"><img src="https://badge.fury.io/js/create-expo-stack.svg" alt="npm version" height="18"></a>
|
|
4
|
-
|
|
5
|
-
## Description
|
|
6
|
-
|
|
7
|
-
This CLI tool is designed to help you get started with React Native and Expo as quickly as possible. The CLI options allow you to configure your project with Typescript, file-based routing with Expo Router, configuration-based navigation via React-Navigation, and styling with StyleSheet or Tailwind CSS, with either NativeWind or Tamagui.
|
|
8
|
-
|
|
9
|
-
You can also use flags such as `--noInstall`, `--noGit`, and `--default` in order to customize your project. The CLI will attempt to automatically determine your package manager of choice but you can also pass in your preferred package manager via `--npm`, `--yarn`, or `pnpm`. Roadmap coming soon...
|
|
10
|
-
|
|
11
|
-
## Usage
|
|
12
|
-
|
|
13
|
-
To get started, use npx to run the CLI tool. You will be prompted to opt into the features you want to use.
|
|
14
|
-
|
|
15
|
-
`npx create-expo-stack@latest`
|
|
16
|
-
|
|
17
|
-
<img src="https://github.com/danstepanov/create-expo-stack/assets/5482800/6c4b5a00-63ae-4b3d-af0b-6da805e8c547" />
|
|
18
|
-
|
|
19
|
-
## Tech Stack for the templates
|
|
20
|
-
|
|
21
|
-
Currently, all of the [templates](https://github.com/danstepanov/create-expo-stack/tree/main/src/templates) 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.
|
|
22
|
-
|
|
23
|
-
Each project is generated based on the results of the CLI, on a per-file basis. This approach makes this CLI extremely extendable and easy to use. Common files to all generated projects are stored in the [base template folder](https://github.com/danstepanov/create-expo-stack/tree/main/src/templates/base) while files pertaining to additional packages are stored in the [packages template folder](https://github.com/danstepanov/create-expo-stack/tree/main/src/templates/packages). Beyond adding files, this project makes use of [EJS](https://ejs.co/) in order to manipulate existing files as necessary.
|
|
24
|
-
|
|
25
|
-
| Library | Category | Version | Description |
|
|
26
|
-
| ------------------ | ------------------- | ------- | ---------------------------------------------- |
|
|
27
|
-
| React Native | Mobile Framework | v0.72 | The best cross-platform mobile framework |
|
|
28
|
-
| React | UI Framework | v18 | The most popular UI framework in the world |
|
|
29
|
-
| TypeScript | Language | v4 | Static typechecking |
|
|
30
|
-
| React Navigation | Navigation | v6 | Performant and consistent navigation framework |
|
|
31
|
-
| Expo | SDK | v49 | Allows (optional) Expo modules |
|
|
32
|
-
| Expo Font | Custom Fonts | v11 | Import custom fonts |
|
|
33
|
-
| Expo Linking | URL Handling | v5 | Open your app via a URL |
|
|
34
|
-
| Expo Router | Navigation | v2 | File-based routing in React-Native |
|
|
35
|
-
| Expo Splash Screen | Splash Screen | v0.18 | Custom splash screen |
|
|
36
|
-
| Expo Status Bar | Status Bar Library | v1 | Status bar support |
|
|
37
|
-
| Expo System UI | System UI Library | v2 | System UI support |
|
|
38
|
-
| Expo Web Browser | Web Browser Library | v12 | Open links in the browser |
|
|
39
|
-
| NativeWind | UI Framework | v2 | Tailwind CSS for React Native |
|
|
40
|
-
| Tamagui | UI Framework | v1 | Universal UI with a smart optimizing compiler |
|
|
41
|
-
| Safe Area Context | Safe Area Library | v4 | Safe area support |
|
|
42
|
-
| React Native Web | Web Support | v0.19 | React Native for Web |
|
|
43
|
-
|
|
44
|
-
## Reporting Bugs & Feedback
|
|
45
|
-
|
|
46
|
-
If you run into problems or have feedback, first search the issues and discussions in this repository. If you don't find anything, feel free to message me on [Twitter](https://twitter.com/danstepanov) or open a new issue.
|
|
47
|
-
|
|
48
|
-
## Contributing
|
|
49
|
-
|
|
50
|
-
### [See this guide.](https://github.com/danstepanov/create-expo-stack/blob/main/contributing.md)
|
|
51
|
-
|
|
52
|
-
Contributions are welcome! Please open a pull request or an issue if you would like to contribute. There are existing feature requests labeled as `[FR]` in the issues section of this repo.
|
|
53
|
-
|
|
54
|
-
## Want to move faster? I can help 😎
|
|
55
|
-
|
|
56
|
-
Getting up-to-speed on a new framework can be cumbersome. If you find that you need to move more quickly, I may be available to help.
|
|
57
|
-
|
|
58
|
-
If you'd like help with your React Native/Expo app or are just looking for a technical advisor to guide you along your journey, [let's chat](https://twitter.com/danstepanov).
|
|
59
|
-
|
|
60
|
-
## Contributors ✨
|
|
61
|
-
|
|
62
|
-
Thanks go to these wonderful people:
|
|
63
|
-
|
|
64
|
-
<table>
|
|
65
|
-
<tbody>
|
|
66
|
-
<tr>
|
|
67
|
-
<td align="center" valign="top" width="14.28%">
|
|
68
|
-
<a href="https://onlydans.gg/">
|
|
69
|
-
<img src="https://pbs.twimg.com/profile_images/1689473757713514496/8fQrCrBx_400x400.jpg" width="100px;" alt="Dan Stepanov"/>
|
|
70
|
-
<br />
|
|
71
|
-
Dan Stepanov
|
|
72
|
-
</a>
|
|
73
|
-
</td>
|
|
74
|
-
<td align="center" valign="top" width="14.28%">
|
|
75
|
-
<a href="https://github.com/frankcalise/">
|
|
76
|
-
<img src="https://pbs.twimg.com/profile_images/1262363198839238662/uIfRNVBY_400x400.jpg" width="100px;" alt="Frank Calise"/>
|
|
77
|
-
<br />
|
|
78
|
-
Frank Calise
|
|
79
|
-
</a>
|
|
80
|
-
</td>
|
|
81
|
-
<td align="center" valign="top" width="14.28%">
|
|
82
|
-
<a href="https://twitter.com/PickleNik0864">
|
|
83
|
-
<img src="https://pbs.twimg.com/profile_images/1694518037385244672/eaS0RTwB_400x400.jpg" width="100px;" alt="PickleNik"/>
|
|
84
|
-
<br />
|
|
85
|
-
PickleNik
|
|
86
|
-
</a>
|
|
87
|
-
</td>
|
|
88
|
-
<td align="center" valign="top" width="14.28%">
|
|
89
|
-
<a href="https://twitter.com/trashh_dev">
|
|
90
|
-
<img src="https://pbs.twimg.com/profile_images/1598959528518643713/aWdwBYxv_400x400.jpg" width="100px;" alt="Chris Bautista"/>
|
|
91
|
-
<br />
|
|
92
|
-
Chris Bautista
|
|
93
|
-
</a>
|
|
94
|
-
</td>
|
|
95
|
-
<td align="center" valign="top" width="14.28%">
|
|
96
|
-
<a href="https://aodhan.netlify.app/">
|
|
97
|
-
<img src="https://pbs.twimg.com/profile_images/1472990183993888772/3X5J4d9__400x400.png" width="100px;" alt="Aodhan Hamilton"/>
|
|
98
|
-
<br />
|
|
99
|
-
Aodhan Hamilton
|
|
100
|
-
</a>
|
|
101
|
-
</td>
|
|
102
|
-
</tr>
|
|
103
|
-
</tbody>
|
|
104
|
-
</table>
|