@mr.dj2u/create-expo-stack 2.21.3-mrdj.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.
- package/README.md +435 -0
- package/bin/create-expo-stack.js +2 -0
- package/build/cli.js +49 -0
- package/build/commands/create-expo-stack.js +471 -0
- package/build/constants.js +39 -0
- package/build/templates/base/.gitignore.ejs +26 -0
- package/build/templates/base/.npmrc.ejs +1 -0
- package/build/templates/base/App.tsx.ejs +66 -0
- package/build/templates/base/app.json.ejs +69 -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 +38 -0
- package/build/templates/base/components/BackButton.tsx.ejs +23 -0
- package/build/templates/base/components/Button.tsx.ejs +42 -0
- package/build/templates/base/components/Container.tsx.ejs +14 -0
- package/build/templates/base/components/EditScreenInfo.tsx.ejs +44 -0
- package/build/templates/base/components/HeaderButton.tsx.ejs +31 -0
- package/build/templates/base/components/ScreenContent.tsx.ejs +40 -0
- package/build/templates/base/components/TabBarIcon.tsx.ejs +15 -0
- package/build/templates/base/eslint.config.js.ejs +15 -0
- package/build/templates/base/package.json.ejs +191 -0
- package/build/templates/base/prettier.config.js.ejs +11 -0
- package/build/templates/base/tsconfig.json.ejs +39 -0
- package/build/templates/packages/expo-router/drawer/app/(drawer)/(tabs)/_layout.tsx.ejs +40 -0
- package/build/templates/packages/expo-router/drawer/app/(drawer)/(tabs)/index.tsx.ejs +15 -0
- package/build/templates/packages/expo-router/drawer/app/(drawer)/(tabs)/two.tsx.ejs +15 -0
- package/build/templates/packages/expo-router/drawer/app/(drawer)/_layout.tsx.ejs +65 -0
- package/build/templates/packages/expo-router/drawer/app/(drawer)/index.tsx.ejs +15 -0
- package/build/templates/packages/expo-router/drawer/app/+html.tsx.ejs +49 -0
- package/build/templates/packages/expo-router/drawer/app/+not-found.tsx.ejs +100 -0
- package/build/templates/packages/expo-router/drawer/app/_layout.tsx.ejs +91 -0
- package/build/templates/packages/expo-router/drawer/app/modal.tsx.ejs +21 -0
- package/build/templates/packages/expo-router/expo-env.d.ts +4 -0
- package/build/templates/packages/expo-router/index.js.ejs +4 -0
- package/build/templates/packages/expo-router/metro.config.js.ejs +24 -0
- package/build/templates/packages/expo-router/stack/app/+html.tsx.ejs +49 -0
- package/build/templates/packages/expo-router/stack/app/+not-found.tsx.ejs +113 -0
- package/build/templates/packages/expo-router/stack/app/_layout.tsx.ejs +63 -0
- package/build/templates/packages/expo-router/stack/app/details.tsx.ejs +56 -0
- package/build/templates/packages/expo-router/stack/app/index.tsx.ejs +73 -0
- package/build/templates/packages/expo-router/tabs/app/(tabs)/_layout.tsx.ejs +52 -0
- package/build/templates/packages/expo-router/tabs/app/(tabs)/index.tsx.ejs +37 -0
- package/build/templates/packages/expo-router/tabs/app/(tabs)/two.tsx.ejs +37 -0
- package/build/templates/packages/expo-router/tabs/app/+html.tsx.ejs +49 -0
- package/build/templates/packages/expo-router/tabs/app/+not-found.tsx.ejs +110 -0
- package/build/templates/packages/expo-router/tabs/app/_layout.tsx.ejs +84 -0
- package/build/templates/packages/expo-router/tabs/app/modal.tsx.ejs +21 -0
- package/build/templates/packages/firebase/.env.ejs +8 -0
- package/build/templates/packages/firebase/metro.config.js.ejs +14 -0
- package/build/templates/packages/firebase/utils/firebase.ts.ejs +26 -0
- package/build/templates/packages/i18next/components/InternalizationExample.tsx.ejs +23 -0
- package/build/templates/packages/i18next/core/i18n/fallbackChecker.ts.ejs +13 -0
- package/build/templates/packages/i18next/core/i18n/init.ts.ejs +24 -0
- package/build/templates/packages/i18next/core/i18n/languageDetector.ts.ejs +13 -0
- package/build/templates/packages/i18next/translation/en.json.ejs +8 -0
- package/build/templates/packages/i18next/translation/fr.json.ejs +8 -0
- package/build/templates/packages/i18next/translation/index.ts.ejs +20 -0
- package/build/templates/packages/nativewind/components/BackButton.tsx.ejs +22 -0
- package/build/templates/packages/nativewind/components/Button.tsx.ejs +21 -0
- package/build/templates/packages/nativewind/components/Container.tsx.ejs +13 -0
- package/build/templates/packages/nativewind/components/EditScreenInfo.tsx.ejs +40 -0
- package/build/templates/packages/nativewind/components/ScreenContent.tsx.ejs +27 -0
- package/build/templates/packages/nativewind/global.css +3 -0
- package/build/templates/packages/nativewind/metro.config.js +7 -0
- package/build/templates/packages/nativewind/nativewind-env.d.ts +2 -0
- package/build/templates/packages/nativewind/tailwind.config.js.ejs +15 -0
- package/build/templates/packages/nativewindui/components/Container.tsx.ejs +14 -0
- package/build/templates/packages/nativewindui/components/EditScreenInfo.tsx.ejs +45 -0
- package/build/templates/packages/nativewindui/components/HeaderButton.tsx.ejs +31 -0
- package/build/templates/packages/nativewindui/components/ScreenContent.tsx.ejs +40 -0
- package/build/templates/packages/nativewindui/components/TabBarIcon.tsx.ejs +15 -0
- package/build/templates/packages/nativewindui/components/nativewindui/Icon/Icon.ios.tsx.ejs +52 -0
- package/build/templates/packages/nativewindui/components/nativewindui/Icon/Icon.tsx.ejs +58 -0
- package/build/templates/packages/nativewindui/components/nativewindui/Icon/index.ts.ejs +16 -0
- package/build/templates/packages/nativewindui/components/nativewindui/Icon/types.ts.ejs +18 -0
- package/build/templates/packages/nativewindui/components/nativewindui/ThemeToggle.tsx.ejs +33 -0
- package/build/templates/packages/nativewindui/drawer/app/(drawer)/(tabs)/_layout.tsx.ejs +28 -0
- package/build/templates/packages/nativewindui/drawer/app/(drawer)/(tabs)/index.tsx.ejs +15 -0
- package/build/templates/packages/nativewindui/drawer/app/(drawer)/(tabs)/two.tsx.ejs +15 -0
- package/build/templates/packages/nativewindui/drawer/app/(drawer)/_layout.tsx.ejs +35 -0
- package/build/templates/packages/nativewindui/drawer/app/(drawer)/index.tsx.ejs +535 -0
- package/build/templates/packages/nativewindui/drawer/app/+html.tsx.ejs +46 -0
- package/build/templates/packages/nativewindui/drawer/app/+not-found.tsx.ejs +83 -0
- package/build/templates/packages/nativewindui/drawer/app/_layout.tsx.ejs +75 -0
- package/build/templates/packages/nativewindui/drawer/app/modal.tsx.ejs +33 -0
- package/build/templates/packages/nativewindui/global.css.ejs +91 -0
- package/build/templates/packages/nativewindui/lib/cn.ts.ejs +6 -0
- package/build/templates/packages/nativewindui/lib/useColorScheme.tsx.ejs +21 -0
- package/build/templates/packages/nativewindui/nativewind-env.d.ts.ejs +1 -0
- package/build/templates/packages/nativewindui/stack/app/+html.tsx.ejs +46 -0
- package/build/templates/packages/nativewindui/stack/app/+not-found.tsx.ejs +18 -0
- package/build/templates/packages/nativewindui/stack/app/_layout.tsx.ejs +78 -0
- package/build/templates/packages/nativewindui/stack/app/index.tsx.ejs +487 -0
- package/build/templates/packages/nativewindui/stack/app/modal.tsx.ejs +33 -0
- package/build/templates/packages/nativewindui/tabs/app/(tabs)/_layout.tsx.ejs +35 -0
- package/build/templates/packages/nativewindui/tabs/app/(tabs)/index.tsx.ejs +537 -0
- package/build/templates/packages/nativewindui/tabs/app/(tabs)/two.tsx.ejs +22 -0
- package/build/templates/packages/nativewindui/tabs/app/+html.tsx.ejs +46 -0
- package/build/templates/packages/nativewindui/tabs/app/+not-found.tsx.ejs +90 -0
- package/build/templates/packages/nativewindui/tabs/app/_layout.tsx.ejs +78 -0
- package/build/templates/packages/nativewindui/tabs/app/modal.tsx.ejs +21 -0
- package/build/templates/packages/nativewindui/tailwind.config.js.ejs +67 -0
- package/build/templates/packages/nativewindui/theme/colors.ts.ejs +123 -0
- package/build/templates/packages/nativewindui/theme/index.ts.ejs +32 -0
- package/build/templates/packages/nativewindui/theme/with-opacity.ts.ejs +155 -0
- package/build/templates/packages/react-navigation/App.tsx.ejs +73 -0
- package/build/templates/packages/react-navigation/navigation/drawer-navigator.tsx.ejs +31 -0
- package/build/templates/packages/react-navigation/navigation/index.tsx.ejs +108 -0
- package/build/templates/packages/react-navigation/navigation/tab-navigator.tsx.ejs +38 -0
- package/build/templates/packages/react-navigation/screens/details.tsx.ejs +41 -0
- package/build/templates/packages/react-navigation/screens/home.tsx.ejs +5 -0
- package/build/templates/packages/react-navigation/screens/modal.tsx.ejs +20 -0
- package/build/templates/packages/react-navigation/screens/one.tsx.ejs +5 -0
- package/build/templates/packages/react-navigation/screens/overview.tsx.ejs +54 -0
- package/build/templates/packages/react-navigation/screens/two.tsx.ejs +5 -0
- package/build/templates/packages/restyle/components/BackButton.tsx.ejs +19 -0
- package/build/templates/packages/restyle/components/Button.tsx.ejs +32 -0
- package/build/templates/packages/restyle/components/Container.tsx.ejs +16 -0
- package/build/templates/packages/restyle/components/EditScreenInfo.tsx.ejs +38 -0
- package/build/templates/packages/restyle/components/ScreenContent.tsx.ejs +30 -0
- package/build/templates/packages/restyle/theme.ts.ejs +51 -0
- package/build/templates/packages/supabase/.env.ejs +2 -0
- package/build/templates/packages/supabase/utils/supabase.ts.ejs +14 -0
- package/build/templates/packages/tamagui/components/BackButton.tsx.ejs +12 -0
- package/build/templates/packages/tamagui/components/Button.tsx.ejs +17 -0
- package/build/templates/packages/tamagui/components/Container.tsx.ejs +12 -0
- package/build/templates/packages/tamagui/components/EditScreenInfo.tsx.ejs +27 -0
- package/build/templates/packages/tamagui/components/ScreenContent.tsx.ejs +23 -0
- package/build/templates/packages/tamagui/tamagui.config.ts.ejs +14 -0
- package/build/templates/packages/unistyles/breakpoints.ts.ejs +9 -0
- package/build/templates/packages/unistyles/components/BackButton.tsx.ejs +28 -0
- package/build/templates/packages/unistyles/components/Button.tsx.ejs +42 -0
- package/build/templates/packages/unistyles/components/Container.tsx.ejs +17 -0
- package/build/templates/packages/unistyles/components/EditScreenInfo.tsx.ejs +53 -0
- package/build/templates/packages/unistyles/components/ScreenContent.tsx.ejs +43 -0
- package/build/templates/packages/unistyles/theme.ts.ejs +34 -0
- package/build/templates/packages/unistyles/unistyles.ts.ejs +27 -0
- package/build/templates/packages/uniwind/global.css +2 -0
- package/build/templates/packages/uniwind/metro.config.js.ejs +10 -0
- package/build/templates/packages/vexo-analytics/.env.ejs +7 -0
- package/build/templates/packages/zustand/store/store.ts.ejs +15 -0
- package/build/types/cli.d.ts +4 -0
- package/build/types/commands/create-expo-stack.d.ts +3 -0
- package/build/types/constants.d.ts +10 -0
- package/build/types/types.d.ts +33 -0
- package/build/types/utilities/bumpVersion.d.ts +1 -0
- package/build/types/utilities/clearNavigationPackages.d.ts +2 -0
- package/build/types/utilities/clearStylingPackages.d.ts +2 -0
- package/build/types/utilities/configAnalytics.d.ts +18 -0
- package/build/types/utilities/configStorage.d.ts +8 -0
- package/build/types/utilities/configureProjectFiles.d.ts +3 -0
- package/build/types/utilities/copyBaseAssets.d.ts +2 -0
- package/build/types/utilities/generateNWUI.d.ts +3 -0
- package/build/types/utilities/generateProjectFiles.d.ts +5 -0
- package/build/types/utilities/getPackageManager.d.ts +8 -0
- package/build/types/utilities/index.d.ts +10 -0
- package/build/types/utilities/printOutput.d.ts +3 -0
- package/build/types/utilities/publishToGitHub.d.ts +2 -0
- package/build/types/utilities/renderTitle.d.ts +2 -0
- package/build/types/utilities/runCLI.d.ts +3 -0
- package/build/types/utilities/runEasConfigure.d.ts +3 -0
- package/build/types/utilities/runIgnite.d.ts +3 -0
- package/build/types/utilities/showHelp.d.ts +1 -0
- package/build/types/utilities/systemCommand.d.ts +14 -0
- package/build/types/utilities/usePackage.d.ts +2 -0
- package/build/types/utilities/validateProjectName.d.ts +4 -0
- package/build/types.js +39 -0
- package/build/utilities/bumpVersion.js +21 -0
- package/build/utilities/clearNavigationPackages.js +11 -0
- package/build/utilities/clearStylingPackages.js +11 -0
- package/build/utilities/configAnalytics.js +70 -0
- package/build/utilities/configStorage.js +50 -0
- package/build/utilities/configureProjectFiles.js +380 -0
- package/build/utilities/copyBaseAssets.js +21 -0
- package/build/utilities/generateNWUI.js +54 -0
- package/build/utilities/generateProjectFiles.js +106 -0
- package/build/utilities/getPackageManager.js +103 -0
- package/build/utilities/index.js +27 -0
- package/build/utilities/printOutput.js +251 -0
- package/build/utilities/publishToGitHub.js +173 -0
- package/build/utilities/renderTitle.js +55 -0
- package/build/utilities/runCLI.js +437 -0
- package/build/utilities/runEasConfigure.js +83 -0
- package/build/utilities/runIgnite.js +26 -0
- package/build/utilities/showHelp.js +85 -0
- package/build/utilities/systemCommand.js +40 -0
- package/build/utilities/usePackage.js +8 -0
- package/build/utilities/validateProjectName.js +42 -0
- package/package.json +77 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.showHelp = void 0;
|
|
4
|
+
function showHelp(info, highlight, warning) {
|
|
5
|
+
info('\nUsage:');
|
|
6
|
+
highlight(' npx create-expo-stack <project-name> [options]\n');
|
|
7
|
+
info('Options:');
|
|
8
|
+
highlight(' --help, -h Show this help message');
|
|
9
|
+
highlight(' --default, -d Skip the CLI and use the default configuration');
|
|
10
|
+
highlight(' --nonInteractive Skip the CLI and use options passed via command line');
|
|
11
|
+
highlight(' --overwrite Overwrite the target directory if it exists');
|
|
12
|
+
highlight(' --noInstall Skip installing dependencies');
|
|
13
|
+
highlight(' --noGit Skip git initialization');
|
|
14
|
+
highlight(' --publish Create a GitHub repository and push the code');
|
|
15
|
+
info('');
|
|
16
|
+
highlight(' Info');
|
|
17
|
+
info(' Creates a new configurable Expo project');
|
|
18
|
+
info('');
|
|
19
|
+
highlight(' Usage');
|
|
20
|
+
warning(' $ npx create-expo-stack <project_name> [options]');
|
|
21
|
+
info('');
|
|
22
|
+
highlight(' Commands:');
|
|
23
|
+
highlight(' create <project-name> Create a new Expo project');
|
|
24
|
+
highlight(' publish Publish current project to GitHub\n');
|
|
25
|
+
highlight(' Options');
|
|
26
|
+
info(' -d, --default Use the default options for creating a project');
|
|
27
|
+
info(' --noInstall Skip installing npm packages or CocoaPods');
|
|
28
|
+
info(' --noGit Skip initializing a git repository');
|
|
29
|
+
info(' --overwrite Skip checks for an existing project directory');
|
|
30
|
+
info(' --blank Use the blank typescript template');
|
|
31
|
+
info(' --npm Use npm as the package manager');
|
|
32
|
+
info(' --yarn Use yarn as the package manager');
|
|
33
|
+
info(' --pnpm Use pnpm as the package manager');
|
|
34
|
+
info(' --bun Use bun as the package manager');
|
|
35
|
+
info(' --importAlias Enable TS path aliases');
|
|
36
|
+
info(' -v, --version Version number');
|
|
37
|
+
info(' -h, --help Usage info');
|
|
38
|
+
info('');
|
|
39
|
+
highlight(' Navigation Package Options');
|
|
40
|
+
info(' --exporouter Use Expo Router for navigation');
|
|
41
|
+
info(' --reactnavigation Use React Navigation for navigation');
|
|
42
|
+
info(' --tabs Use tabs for navigation');
|
|
43
|
+
info(' --drawer+tabs Use drawer + tabs for navigation');
|
|
44
|
+
info('');
|
|
45
|
+
highlight(' Authentication Package Options');
|
|
46
|
+
info(' --firebase Use Firebase for authentication');
|
|
47
|
+
info(' --supabase Use Supabase for authentication');
|
|
48
|
+
info('');
|
|
49
|
+
highlight(' Analytics Package Options');
|
|
50
|
+
info(' --vexo-analytics Use Vexo Analytics for analytics');
|
|
51
|
+
info('');
|
|
52
|
+
highlight(' Styling Package Options');
|
|
53
|
+
info(' --nativewind Use Nativewind for styling');
|
|
54
|
+
info(' --uniwind Use Uniwind for styling');
|
|
55
|
+
info(' --unistyles Use Unistyles for styling');
|
|
56
|
+
info(' --restyle Use Restyle for styling');
|
|
57
|
+
info(' --tamagui Use Tamagui for styling');
|
|
58
|
+
info(' --stylesheet Use StyleSheet for styling');
|
|
59
|
+
info('');
|
|
60
|
+
highlight(' Software Mansion Package Options');
|
|
61
|
+
info(' --react-native-gesture-handler Add React Native Gesture Handler');
|
|
62
|
+
info(' --react-native-screens Add React Native Screens');
|
|
63
|
+
info(' --react-native-svg Add React Native SVG');
|
|
64
|
+
info(' --react-native-keyboard-controller Add React Native Keyboard Controller');
|
|
65
|
+
info(' --reanimated React Native Reanimated is included by default');
|
|
66
|
+
info(' --worklets React Native Worklets is included by default');
|
|
67
|
+
info('');
|
|
68
|
+
highlight(' Internationalization');
|
|
69
|
+
info(' --i18next Use i18next and react-i18next for internationalization');
|
|
70
|
+
info('');
|
|
71
|
+
highlight(' Opinionated Stacks');
|
|
72
|
+
info(' -i, --ignite Use Ignite to create an opinionated stack');
|
|
73
|
+
info('');
|
|
74
|
+
highlight(' Non-Interactive Usage');
|
|
75
|
+
info(' If you know the options you want to use, you can pass them in via the');
|
|
76
|
+
info(' command line. This will skip the interactive CLI and use the options');
|
|
77
|
+
info(' you pass in. This is also useful for CI/CD environments.');
|
|
78
|
+
info('');
|
|
79
|
+
info(' For example:');
|
|
80
|
+
info(' ');
|
|
81
|
+
warning(' $ npx create-expo-stack myProject --reactnavigation --nativewind --noInstall');
|
|
82
|
+
info('');
|
|
83
|
+
}
|
|
84
|
+
exports.showHelp = showHelp;
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvd0hlbHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL3Nob3dIZWxwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQWdCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU87SUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pCLFNBQVMsQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO0lBRWhFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQixTQUFTLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUMxRCxTQUFTLENBQUMsc0VBQXNFLENBQUMsQ0FBQztJQUNsRixTQUFTLENBQUMsNEVBQTRFLENBQUMsQ0FBQztJQUN4RixTQUFTLENBQUMsbUVBQW1FLENBQUMsQ0FBQztJQUMvRSxTQUFTLENBQUMsb0RBQW9ELENBQUMsQ0FBQztJQUNoRSxTQUFTLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUMxRCxTQUFTLENBQUMsbUVBQW1FLENBQUMsQ0FBQztJQUMvRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDVCxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEIsSUFBSSxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JCLE9BQU8sQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO0lBQ2hFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNULFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6QixTQUFTLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUNsRSxTQUFTLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUMzRSxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkIsSUFBSSxDQUFDLDBFQUEwRSxDQUFDLENBQUM7SUFDakYsSUFBSSxDQUFDLHFFQUFxRSxDQUFD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
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.runSystemCommand = exports.quoteShellArg = exports.ONLY_ERRORS = void 0;
|
|
13
|
+
exports.ONLY_ERRORS = ['ignore', 'ignore', 'inherit'];
|
|
14
|
+
function quoteShellArg(value) {
|
|
15
|
+
if (process.platform === 'win32') {
|
|
16
|
+
return `"${value.replace(/"/g, '""')}"`;
|
|
17
|
+
}
|
|
18
|
+
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
19
|
+
}
|
|
20
|
+
exports.quoteShellArg = quoteShellArg;
|
|
21
|
+
function runSystemCommand(_a) {
|
|
22
|
+
return __awaiter(this, arguments, void 0, function* ({ command, errorMessage, stdio, toolbox, shell = true, env, failOnError = true }) {
|
|
23
|
+
const { print: { error }, system } = toolbox;
|
|
24
|
+
const result = yield system.spawn(command, {
|
|
25
|
+
shell,
|
|
26
|
+
stdio,
|
|
27
|
+
env
|
|
28
|
+
});
|
|
29
|
+
if (failOnError && (result.error || result.status !== 0)) {
|
|
30
|
+
error(`${errorMessage}: ${JSON.stringify(result)}`);
|
|
31
|
+
error(`failed to run command: ${command}`);
|
|
32
|
+
return process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return result.stdout;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
exports.runSystemCommand = runSystemCommand;
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtQ29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3lzdGVtQ29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFJYSxRQUFBLFdBQVcsR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFVLENBQUM7QUFFcEUsU0FBZ0IsYUFBYSxDQUFDLEtBQWE7SUFDekMsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQzFDLENBQUM7SUFFRCxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztBQUM3QyxDQUFDO0FBTkQsc0NBTUM7QUFFRCxTQUFzQixnQkFBZ0I7eURBQUMsRUFDckMsT0FBTyxFQUNQLFlBQVksRUFDWixLQUFLLEVBQ0wsT0FBTyxFQUNQLEtBQUssR0FBRyxJQUFJLEVBQ1osR0FBRyxFQUNILFdBQVcsR0FBRyxJQUFJLEVBU25CO1FBQ0MsTUFBTSxFQUNKLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUNoQixNQUFNLEVBQ1AsR0FBRyxPQUFPLENBQUM7UUFFWixNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ3pDLEtBQUs7WUFDTCxLQUFLO1lBQ0wsR0FBRztTQUNKLENBQUMsQ0FBQztRQUVILElBQUksV0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDekQsS0FBSyxDQUFDLEdBQUcsWUFBWSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXBELEtBQUssQ0FBQywwQkFBMEIsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUUzQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7Q0FBQTtBQXJDRCw0Q0FxQ0MifQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.usePackage = void 0;
|
|
4
|
+
function usePackage(packageName, packages) {
|
|
5
|
+
return packages.find((p) => p.name === packageName) ? true : false;
|
|
6
|
+
}
|
|
7
|
+
exports.usePackage = usePackage;
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlUGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdXNlUGFja2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxTQUFnQixVQUFVLENBQUMsV0FBbUIsRUFBRSxRQUE2QjtJQUMzRSxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3JFLENBQUM7QUFGRCxnQ0FFQyJ9
|
|
@@ -0,0 +1,42 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.validateProjectName = void 0;
|
|
13
|
+
const prompts_1 = require("@clack/prompts");
|
|
14
|
+
function validateProjectName(exists, removeAsync, prompt, projectName, overwrite) {
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
const s = (0, prompts_1.spinner)();
|
|
17
|
+
if (!exists(projectName)) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (overwrite) {
|
|
21
|
+
yield removeAsync(projectName);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const shouldDeleteExistingProject = yield (0, prompts_1.confirm)({
|
|
25
|
+
message: `A folder with the name '${projectName}' already exists. Do you want to delete it?`,
|
|
26
|
+
initialValue: true
|
|
27
|
+
});
|
|
28
|
+
if ((0, prompts_1.isCancel)(shouldDeleteExistingProject)) {
|
|
29
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
30
|
+
return process.exit(0);
|
|
31
|
+
}
|
|
32
|
+
if (shouldDeleteExistingProject) {
|
|
33
|
+
s.start('Deleting existing project. This may take a minute...');
|
|
34
|
+
yield removeAsync(projectName);
|
|
35
|
+
s.stop(`Deleted existing directory: ${projectName}`);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
throw new Error(`A project with the name '${projectName}' already exists.`);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
exports.validateProjectName = validateProjectName;
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVQcm9qZWN0TmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmFsaWRhdGVQcm9qZWN0TmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBb0U7QUFNcEUsU0FBc0IsbUJBQW1CLENBQ3ZDLE1BQXNDLEVBQ3RDLFdBQTZDLEVBQzdDLE1BQTRCLEVBQzVCLFdBQW1CLEVBQ25CLFNBQWtCOztRQUVsQixNQUFNLENBQUMsR0FBRyxJQUFBLGlCQUFPLEdBQUUsQ0FBQztRQUVwQixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFL0IsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLDJCQUEyQixHQUFHLE1BQU0sSUFBQSxpQkFBTyxFQUFDO1lBQ2hELE9BQU8sRUFBRSwyQkFBMkIsV0FBVyw2Q0FBNkM7WUFDNUYsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFBLGtCQUFRLEVBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDO1lBQzFDLElBQUEsZ0JBQU0sRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzFCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBRUQsSUFBSSwyQkFBMkIsRUFBRSxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztZQUNoRSxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUMsSUFBSSxDQUFDLCtCQUErQixXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsV0FBVyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FBQTtBQXJDRCxrREFxQ0MifQ==
|
package/package.json
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mr.dj2u/create-expo-stack",
|
|
3
|
+
"version": "2.21.3-mrdj.0",
|
|
4
|
+
"description": "CLI tool to initialize a React Native application with Expo",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/roninoss/create-expo-stack.git",
|
|
8
|
+
"directory": "cli"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://rn.new",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"types": "build/types/types.d.ts",
|
|
13
|
+
"bin": {
|
|
14
|
+
"create-expo-stack": "bin/create-expo-stack.js"
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"build",
|
|
18
|
+
"LICENSE",
|
|
19
|
+
"readme.md",
|
|
20
|
+
"docs",
|
|
21
|
+
"bin"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "bun run clean-build && bun run compile && bun run copy-templates && bun run lint-templates",
|
|
25
|
+
"bump": "bun run ./src/utilities/bumpVersion.ts",
|
|
26
|
+
"clean-build": "rm -rf ./build",
|
|
27
|
+
"compile": "tsc -p .",
|
|
28
|
+
"copy-templates": "bun run copyfiles -u 2 -a \"./src/templates/**/*\" ./build/templates",
|
|
29
|
+
"dev": "bun run build && NODE_ENV=development bun run bin/create-expo-stack.js",
|
|
30
|
+
"format": "eslint \"**/*.{js,jsx,ts,tsx}\" --fix --resolve-plugins-relative-to . && prettier \"**/*.{js,jsx,ts,tsx,json}\" --write",
|
|
31
|
+
"lint-templates": "bun run ejslint ./src/templates",
|
|
32
|
+
"prepublishOnly": "bun run build",
|
|
33
|
+
"publishPublic": "bun run build && npm publish --access public",
|
|
34
|
+
"snapshot-update": "bun test --bail=1 --timeout 160000 --update-snapshots",
|
|
35
|
+
"test:watch": "bun test --watch",
|
|
36
|
+
"test": "bun test --bail=1 --timeout 160000",
|
|
37
|
+
"test:skip-snapshots": "INCLUDE_REACT_NAVIGATION_TESTS=1 SKIP_SNAPSHOTS=1 bun test bun test --bail=1 --timeout 160000",
|
|
38
|
+
"test:all": "ALL_PACKAGE_MANAGERS=true bun test --bail=1 --timeout 160000"
|
|
39
|
+
},
|
|
40
|
+
"prettier": {
|
|
41
|
+
"arrowParens": "always",
|
|
42
|
+
"bracketSameLine": false,
|
|
43
|
+
"bracketSpacing": true,
|
|
44
|
+
"printWidth": 120,
|
|
45
|
+
"semi": true,
|
|
46
|
+
"singleQuote": true,
|
|
47
|
+
"tabWidth": 2,
|
|
48
|
+
"trailingComma": "none",
|
|
49
|
+
"useTabs": false
|
|
50
|
+
},
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"@clack/prompts": "^0.11.0",
|
|
53
|
+
"ejs-lint": "^2.0.0",
|
|
54
|
+
"expo": "~55.0.25",
|
|
55
|
+
"figlet": "^1.6.0",
|
|
56
|
+
"gluegun": "latest",
|
|
57
|
+
"google-auth-library": "^9.11.0",
|
|
58
|
+
"googleapis": "^140.0.0",
|
|
59
|
+
"gradient-string": "^2.0.2"
|
|
60
|
+
},
|
|
61
|
+
"devDependencies": {
|
|
62
|
+
"@types/gradient-string": "^1.1.2",
|
|
63
|
+
"@types/node": "^20.0.0",
|
|
64
|
+
"@typescript-eslint/eslint-plugin": "^6.9.1",
|
|
65
|
+
"@typescript-eslint/parser": "^6.9.1",
|
|
66
|
+
"copyfiles": "^2.4.1",
|
|
67
|
+
"eslint": "^8.53.0",
|
|
68
|
+
"eslint-config-prettier": "^9.0.0",
|
|
69
|
+
"eslint-plugin-prettier": "^5.0.1",
|
|
70
|
+
"husky": "^5.1.3",
|
|
71
|
+
"prettier": "^3.1.0"
|
|
72
|
+
},
|
|
73
|
+
"publishConfig": {
|
|
74
|
+
"access": "public",
|
|
75
|
+
"provenance": false
|
|
76
|
+
}
|
|
77
|
+
}
|