@highbeek/create-rnstarterkit 1.0.2-beta.1 → 1.0.2-beta.11

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.
Files changed (147) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +254 -0
  3. package/dist/bin/create-rnstarterkit.js +21 -1
  4. package/dist/src/generators/appGenerator.js +2086 -67
  5. package/dist/templates/cli-base/.bundle/config +2 -0
  6. package/dist/templates/cli-base/.eslintrc.js +4 -0
  7. package/dist/templates/cli-base/.prettierrc.js +5 -0
  8. package/dist/templates/cli-base/.watchmanconfig +1 -0
  9. package/dist/templates/cli-base/App.tsx +223 -0
  10. package/dist/templates/cli-base/Gemfile +16 -0
  11. package/dist/templates/cli-base/Gemfile.lock +169 -0
  12. package/dist/templates/cli-base/README.md +97 -0
  13. package/dist/templates/cli-base/__tests__/App.test.tsx +13 -0
  14. package/dist/templates/cli-base/android/app/build.gradle +119 -0
  15. package/dist/templates/cli-base/android/app/debug.keystore +0 -0
  16. package/dist/templates/cli-base/android/app/proguard-rules.pro +10 -0
  17. package/dist/templates/cli-base/android/app/src/main/AndroidManifest.xml +27 -0
  18. package/dist/templates/cli-base/android/app/src/main/java/com/baseapp/MainActivity.kt +22 -0
  19. package/dist/templates/cli-base/android/app/src/main/java/com/baseapp/MainApplication.kt +27 -0
  20. package/dist/templates/cli-base/android/app/src/main/res/drawable/rn_edit_text_material.xml +37 -0
  21. package/dist/templates/cli-base/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  22. package/dist/templates/cli-base/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  23. package/dist/templates/cli-base/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  24. package/dist/templates/cli-base/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  25. package/dist/templates/cli-base/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  26. package/dist/templates/cli-base/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  27. package/dist/templates/cli-base/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  28. package/dist/templates/cli-base/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  29. package/dist/templates/cli-base/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  30. package/dist/templates/cli-base/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  31. package/dist/templates/cli-base/android/app/src/main/res/values/strings.xml +3 -0
  32. package/dist/templates/cli-base/android/app/src/main/res/values/styles.xml +9 -0
  33. package/dist/templates/cli-base/android/build.gradle +21 -0
  34. package/dist/templates/cli-base/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  35. package/dist/templates/cli-base/android/gradle/wrapper/gradle-wrapper.properties +7 -0
  36. package/dist/templates/cli-base/android/gradle.properties +44 -0
  37. package/dist/templates/cli-base/android/gradlew +251 -0
  38. package/dist/templates/cli-base/android/gradlew.bat +99 -0
  39. package/dist/templates/cli-base/android/settings.gradle +6 -0
  40. package/dist/templates/cli-base/app.json +4 -0
  41. package/dist/templates/cli-base/assets/images/icon.png +0 -0
  42. package/dist/templates/cli-base/assets/images/partial-react-logo.png +0 -0
  43. package/dist/templates/cli-base/assets/images/react-logo.png +0 -0
  44. package/dist/templates/cli-base/babel.config.js +3 -0
  45. package/dist/templates/cli-base/index.js +9 -0
  46. package/dist/templates/cli-base/ios/.xcode.env +11 -0
  47. package/dist/templates/cli-base/ios/BaseApp/AppDelegate.swift +48 -0
  48. package/dist/templates/cli-base/ios/BaseApp/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
  49. package/dist/templates/cli-base/ios/BaseApp/Images.xcassets/Contents.json +6 -0
  50. package/dist/templates/cli-base/ios/BaseApp/Info.plist +60 -0
  51. package/dist/templates/cli-base/ios/BaseApp/LaunchScreen.storyboard +47 -0
  52. package/dist/templates/cli-base/ios/BaseApp/PrivacyInfo.xcprivacy +37 -0
  53. package/dist/templates/cli-base/ios/BaseApp.xcodeproj/project.pbxproj +494 -0
  54. package/dist/templates/cli-base/ios/BaseApp.xcodeproj/xcshareddata/xcschemes/BaseApp.xcscheme +88 -0
  55. package/dist/templates/cli-base/ios/BaseApp.xcworkspace/contents.xcworkspacedata +10 -0
  56. package/dist/templates/cli-base/ios/Podfile +34 -0
  57. package/dist/templates/cli-base/ios/Podfile.lock +2165 -0
  58. package/dist/templates/cli-base/jest.config.js +7 -0
  59. package/dist/templates/cli-base/metro.config.js +11 -0
  60. package/dist/templates/cli-base/package-lock.json +11859 -0
  61. package/dist/templates/cli-base/package.json +43 -0
  62. package/dist/templates/cli-base/tsconfig.json +9 -0
  63. package/dist/templates/expo-base/.vscode/extensions.json +1 -0
  64. package/dist/templates/expo-base/.vscode/settings.json +7 -0
  65. package/dist/templates/expo-base/README.md +50 -0
  66. package/dist/templates/expo-base/app/_layout.tsx +12 -0
  67. package/dist/templates/expo-base/app/index.tsx +168 -0
  68. package/dist/templates/expo-base/app.json +48 -0
  69. package/dist/templates/expo-base/assets/images/android-icon-background.png +0 -0
  70. package/dist/templates/expo-base/assets/images/android-icon-foreground.png +0 -0
  71. package/dist/templates/expo-base/assets/images/android-icon-monochrome.png +0 -0
  72. package/dist/templates/expo-base/assets/images/favicon.png +0 -0
  73. package/dist/templates/expo-base/assets/images/icon.png +0 -0
  74. package/dist/templates/expo-base/assets/images/partial-react-logo.png +0 -0
  75. package/dist/templates/expo-base/assets/images/react-logo.png +0 -0
  76. package/dist/templates/expo-base/assets/images/react-logo@2x.png +0 -0
  77. package/dist/templates/expo-base/assets/images/react-logo@3x.png +0 -0
  78. package/dist/templates/expo-base/assets/images/splash-icon.png +0 -0
  79. package/dist/templates/expo-base/eslint.config.js +10 -0
  80. package/dist/templates/expo-base/package-lock.json +12916 -0
  81. package/dist/templates/expo-base/package.json +49 -0
  82. package/dist/templates/expo-base/tsconfig.json +17 -0
  83. package/dist/templates/optional/apiClient/api/client.ts +142 -0
  84. package/dist/templates/optional/apiClient/api/index.ts +1 -0
  85. package/dist/templates/optional/apiClient/config/env.cli.ts +5 -0
  86. package/dist/templates/optional/apiClient/config/env.expo.ts +4 -0
  87. package/dist/templates/optional/apiClient/config/env.ts +1 -0
  88. package/dist/templates/optional/apiClient/env.d.ts +3 -0
  89. package/dist/templates/optional/auth-context/api/endpoints/auth.ts +14 -0
  90. package/dist/templates/optional/auth-context/components/layout/ScreenLayout.tsx +46 -0
  91. package/dist/templates/optional/auth-context/context/AuthContext.tsx +47 -0
  92. package/dist/templates/optional/auth-context/navigation/ProtectedStack.tsx +66 -0
  93. package/dist/templates/optional/auth-context/navigation/cli/BottomTabs.tsx +17 -0
  94. package/dist/templates/optional/auth-context/navigation/expo/BottomTabs.tsx +29 -0
  95. package/dist/templates/optional/auth-context/screens/HomeScreen.tsx +15 -0
  96. package/dist/templates/optional/auth-context/screens/LoginScreen.tsx +63 -0
  97. package/dist/templates/optional/auth-context/screens/ProfileScreen.tsx +11 -0
  98. package/dist/templates/optional/auth-context/screens/RegisterScreen.tsx +63 -0
  99. package/dist/templates/optional/auth-context/screens/SettingsScreen.tsx +11 -0
  100. package/dist/templates/optional/auth-context/screens/WelcomeScreen.tsx +174 -0
  101. package/dist/templates/optional/auth-context/utils/storage.ts +13 -0
  102. package/dist/templates/optional/auth-redux/api/endpoints/auth.ts +14 -0
  103. package/dist/templates/optional/auth-redux/components/layout/ScreenLayout.tsx +46 -0
  104. package/dist/templates/optional/auth-redux/navigation/ProtectedStack.tsx +67 -0
  105. package/dist/templates/optional/auth-redux/navigation/cli/BottomTabs.tsx +17 -0
  106. package/dist/templates/optional/auth-redux/navigation/expo/BottomTabs.tsx +31 -0
  107. package/dist/templates/optional/auth-redux/screens/HomeScreen.tsx +16 -0
  108. package/dist/templates/optional/auth-redux/screens/LoginScreen.tsx +64 -0
  109. package/dist/templates/optional/auth-redux/screens/ProfileScreen.tsx +11 -0
  110. package/dist/templates/optional/auth-redux/screens/RegisterScreen.tsx +64 -0
  111. package/dist/templates/optional/auth-redux/screens/SettingsScreen.tsx +11 -0
  112. package/dist/templates/optional/auth-redux/screens/WelcomeScreen.tsx +174 -0
  113. package/dist/templates/optional/auth-redux/store/authSlice.ts +25 -0
  114. package/dist/templates/optional/auth-redux/store/store.ts +11 -0
  115. package/dist/templates/optional/auth-zustand/api/endpoints/auth.ts +14 -0
  116. package/dist/templates/optional/auth-zustand/components/layout/ScreenLayout.tsx +46 -0
  117. package/dist/templates/optional/auth-zustand/navigation/BottomTabs.tsx +1 -0
  118. package/dist/templates/optional/auth-zustand/navigation/ProtectedStack.tsx +72 -0
  119. package/dist/templates/optional/auth-zustand/navigation/cli/BottomTabs.tsx +17 -0
  120. package/dist/templates/optional/auth-zustand/navigation/expo/BottomTabs.tsx +31 -0
  121. package/dist/templates/optional/auth-zustand/screens/HomeScreen.tsx +15 -0
  122. package/dist/templates/optional/auth-zustand/screens/LoginScreen.tsx +63 -0
  123. package/dist/templates/optional/auth-zustand/screens/ProfileScreen.tsx +11 -0
  124. package/dist/templates/optional/auth-zustand/screens/RegisterScreen.tsx +63 -0
  125. package/dist/templates/optional/auth-zustand/screens/SettingsScreen.tsx +11 -0
  126. package/dist/templates/optional/auth-zustand/screens/WelcomeScreen.tsx +174 -0
  127. package/dist/templates/optional/auth-zustand/store/authStore.ts +30 -0
  128. package/dist/templates/optional/auth-zustand/utils/storage.ts +13 -0
  129. package/dist/templates/optional/ci/.github/workflows/ci.yml +32 -0
  130. package/dist/templates/optional/error-boundary/components/ErrorBoundary.tsx +83 -0
  131. package/dist/templates/optional/formik/components/formik/FormikInput.tsx +45 -0
  132. package/dist/templates/optional/formik/components/formik/LoginForm.tsx +60 -0
  133. package/dist/templates/optional/formik/schemas/auth.schema.ts +17 -0
  134. package/dist/templates/optional/mmkv/utils/storage.ts +17 -0
  135. package/dist/templates/optional/react-hook-form/components/rhf/LoginForm.tsx +63 -0
  136. package/dist/templates/optional/react-hook-form/components/rhf/RHFInput.tsx +50 -0
  137. package/dist/templates/optional/react-hook-form/schemas/auth.schema.ts +29 -0
  138. package/dist/templates/optional/react-query/hooks/useAppMutation.ts +16 -0
  139. package/dist/templates/optional/react-query/hooks/useAppQuery.ts +12 -0
  140. package/dist/templates/optional/react-query/services/queryClient.ts +14 -0
  141. package/dist/templates/optional/redux/store/hooks.ts +6 -0
  142. package/dist/templates/optional/redux/store/store.ts +11 -0
  143. package/dist/templates/optional/swr/hooks/useSWRFetch.ts +14 -0
  144. package/dist/templates/optional/swr/providers/SWRProvider.tsx +21 -0
  145. package/dist/templates/optional/tsconfig.json +17 -0
  146. package/dist/templates/optional/zustand/store/appStore.ts +13 -0
  147. package/package.json +2 -2
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "{{projectName}}",
3
+ "version": "0.0.1",
4
+ "private": true,
5
+ "scripts": {
6
+ "android": "react-native run-android",
7
+ "ios": "react-native run-ios",
8
+ "start": "react-native start",
9
+ "lint": "eslint . --max-warnings 0",
10
+ "format": "prettier --write .",
11
+ "type-check": "tsc --noEmit",
12
+ "test": "jest"
13
+ },
14
+ "dependencies": {
15
+ "react": "19.2.3",
16
+ "react-native": "0.84.0",
17
+ "react-native-safe-area-context": "^5.5.2",
18
+ "react-native-reanimated": "^3.17.4"
19
+ },
20
+ "devDependencies": {
21
+ "@babel/core": "^7.25.2",
22
+ "@babel/preset-env": "^7.25.3",
23
+ "@babel/runtime": "^7.25.0",
24
+ "@react-native-community/cli": "20.1.0",
25
+ "@react-native-community/cli-platform-android": "20.1.0",
26
+ "@react-native-community/cli-platform-ios": "20.1.0",
27
+ "@react-native/babel-preset": "0.84.0",
28
+ "@react-native/eslint-config": "0.84.0",
29
+ "@react-native/metro-config": "0.84.0",
30
+ "@react-native/typescript-config": "0.84.0",
31
+ "@types/jest": "^29.5.13",
32
+ "@types/react": "^19.2.0",
33
+ "@types/react-test-renderer": "^19.1.0",
34
+ "eslint": "^8.19.0",
35
+ "jest": "^29.6.3",
36
+ "prettier": "2.8.8",
37
+ "react-test-renderer": "19.2.3",
38
+ "typescript": "^5.8.3"
39
+ },
40
+ "engines": {
41
+ "node": ">= 22.11.0"
42
+ }
43
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "@react-native/typescript-config",
3
+ "compilerOptions": {
4
+ "strict": true,
5
+ "types": ["jest"]
6
+ },
7
+ "include": ["**/*.ts", "**/*.tsx"],
8
+ "exclude": ["**/node_modules", "**/Pods"]
9
+ }
@@ -0,0 +1 @@
1
+ { "recommendations": ["expo.vscode-expo-tools"] }
@@ -0,0 +1,7 @@
1
+ {
2
+ "editor.codeActionsOnSave": {
3
+ "source.fixAll": "explicit",
4
+ "source.organizeImports": "explicit",
5
+ "source.sortMembers": "explicit"
6
+ }
7
+ }
@@ -0,0 +1,50 @@
1
+ # Welcome to your Expo app 👋
2
+
3
+ This is an [Expo](https://expo.dev) project created with [`create-expo-app`](https://www.npmjs.com/package/create-expo-app).
4
+
5
+ ## Get started
6
+
7
+ 1. Install dependencies
8
+
9
+ ```bash
10
+ npm install
11
+ ```
12
+
13
+ 2. Start the app
14
+
15
+ ```bash
16
+ npx expo start
17
+ ```
18
+
19
+ In the output, you'll find options to open the app in a
20
+
21
+ - [development build](https://docs.expo.dev/develop/development-builds/introduction/)
22
+ - [Android emulator](https://docs.expo.dev/workflow/android-studio-emulator/)
23
+ - [iOS simulator](https://docs.expo.dev/workflow/ios-simulator/)
24
+ - [Expo Go](https://expo.dev/go), a limited sandbox for trying out app development with Expo
25
+
26
+ You can start developing by editing the files inside the **app** directory. This project uses [file-based routing](https://docs.expo.dev/router/introduction).
27
+
28
+ ## Get a fresh project
29
+
30
+ When you're ready, run:
31
+
32
+ ```bash
33
+ npm run reset-project
34
+ ```
35
+
36
+ This command will move the starter code to the **app-example** directory and create a blank **app** directory where you can start developing.
37
+
38
+ ## Learn more
39
+
40
+ To learn more about developing your project with Expo, look at the following resources:
41
+
42
+ - [Expo documentation](https://docs.expo.dev/): Learn fundamentals, or go into advanced topics with our [guides](https://docs.expo.dev/guides).
43
+ - [Learn Expo tutorial](https://docs.expo.dev/tutorial/introduction/): Follow a step-by-step tutorial where you'll create a project that runs on Android, iOS, and the web.
44
+
45
+ ## Join the community
46
+
47
+ Join our community of developers creating universal apps.
48
+
49
+ - [Expo on GitHub](https://github.com/expo/expo): View our open source platform and contribute.
50
+ - [Discord community](https://chat.expo.dev): Chat with Expo users and ask questions.
@@ -0,0 +1,12 @@
1
+ import { Stack } from "expo-router";
2
+ import { SafeAreaProvider } from "react-native-safe-area-context";
3
+
4
+ export default function RootLayout() {
5
+ return (
6
+ <SafeAreaProvider>
7
+ <Stack>
8
+ <Stack.Screen name="index" options={{ title: "Home" }} />
9
+ </Stack>
10
+ </SafeAreaProvider>
11
+ );
12
+ }
@@ -0,0 +1,168 @@
1
+ import React, { useRef, useState } from "react";
2
+ import {
3
+ FlatList,
4
+ Image,
5
+ ImageSourcePropType,
6
+ Pressable,
7
+ StyleSheet,
8
+ Text,
9
+ useWindowDimensions,
10
+ View,
11
+ ViewToken,
12
+ } from "react-native";
13
+ import { SafeAreaView } from "react-native-safe-area-context";
14
+
15
+ type Slide = {
16
+ id: string;
17
+ title: string;
18
+ description: string;
19
+ image: ImageSourcePropType;
20
+ };
21
+
22
+ const slides: Slide[] = [
23
+ {
24
+ id: "1",
25
+ title: "Welcome to RN Starter Kit",
26
+ description: "Kickstart your app with Expo and a clean production-ready baseline.",
27
+ image: require("../assets/images/react-logo.png"),
28
+ },
29
+ {
30
+ id: "2",
31
+ title: "Built for Real Projects",
32
+ description: "State, auth, API layers, and folder structure are ready for scaling.",
33
+ image: require("../assets/images/partial-react-logo.png"),
34
+ },
35
+ {
36
+ id: "3",
37
+ title: "Customize and Ship",
38
+ description: "Replace this screen with your own brand and ship faster.",
39
+ image: require("../assets/images/icon.png"),
40
+ },
41
+ ];
42
+
43
+ export default function WelcomeScreen() {
44
+ const { width } = useWindowDimensions();
45
+ const [activeIndex, setActiveIndex] = useState(0);
46
+ const listRef = useRef<FlatList<Slide>>(null);
47
+
48
+ const onViewableItemsChanged = useRef(
49
+ ({ viewableItems }: { viewableItems: Array<ViewToken> }) => {
50
+ if (viewableItems[0]?.index != null) {
51
+ setActiveIndex(viewableItems[0].index);
52
+ }
53
+ },
54
+ ).current;
55
+
56
+ const viewabilityConfig = useRef({ viewAreaCoveragePercentThreshold: 60 }).current;
57
+
58
+ const goNext = () => {
59
+ const nextIndex = activeIndex + 1;
60
+ if (nextIndex < slides.length) {
61
+ listRef.current?.scrollToIndex({ index: nextIndex, animated: true });
62
+ }
63
+ };
64
+
65
+ const isLastSlide = activeIndex === slides.length - 1;
66
+
67
+ return (
68
+ <SafeAreaView style={styles.safeArea}>
69
+ <FlatList
70
+ ref={listRef}
71
+ data={slides}
72
+ horizontal
73
+ pagingEnabled
74
+ bounces={false}
75
+ keyExtractor={(item) => item.id}
76
+ showsHorizontalScrollIndicator={false}
77
+ renderItem={({ item }) => (
78
+ <View style={[styles.slide, { width }]}>
79
+ <Image source={item.image} style={styles.image} resizeMode="contain" />
80
+ <Text style={styles.title}>{item.title}</Text>
81
+ <Text style={styles.description}>{item.description}</Text>
82
+ </View>
83
+ )}
84
+ onViewableItemsChanged={onViewableItemsChanged}
85
+ viewabilityConfig={viewabilityConfig}
86
+ />
87
+
88
+ <View style={styles.footer}>
89
+ <View style={styles.dotsRow}>
90
+ {slides.map((slide, index) => (
91
+ <View
92
+ key={slide.id}
93
+ style={[styles.dot, index === activeIndex && styles.dotActive]}
94
+ />
95
+ ))}
96
+ </View>
97
+
98
+ <Pressable style={styles.button} onPress={goNext}>
99
+ <Text style={styles.buttonLabel}>{isLastSlide ? "Get Started" : "Next"}</Text>
100
+ </Pressable>
101
+ </View>
102
+ </SafeAreaView>
103
+ );
104
+ }
105
+
106
+ const styles = StyleSheet.create({
107
+ safeArea: {
108
+ flex: 1,
109
+ backgroundColor: "#F7F7F9",
110
+ },
111
+ slide: {
112
+ flex: 1,
113
+ paddingHorizontal: 24,
114
+ justifyContent: "center",
115
+ alignItems: "center",
116
+ },
117
+ image: {
118
+ width: 220,
119
+ height: 220,
120
+ marginBottom: 28,
121
+ },
122
+ title: {
123
+ fontSize: 28,
124
+ fontWeight: "700",
125
+ color: "#111827",
126
+ textAlign: "center",
127
+ marginBottom: 12,
128
+ },
129
+ description: {
130
+ fontSize: 16,
131
+ lineHeight: 24,
132
+ color: "#4B5563",
133
+ textAlign: "center",
134
+ maxWidth: 320,
135
+ },
136
+ footer: {
137
+ paddingHorizontal: 24,
138
+ paddingBottom: 28,
139
+ gap: 20,
140
+ },
141
+ dotsRow: {
142
+ flexDirection: "row",
143
+ justifyContent: "center",
144
+ gap: 8,
145
+ },
146
+ dot: {
147
+ width: 8,
148
+ height: 8,
149
+ borderRadius: 999,
150
+ backgroundColor: "#D1D5DB",
151
+ },
152
+ dotActive: {
153
+ width: 24,
154
+ backgroundColor: "#111827",
155
+ },
156
+ button: {
157
+ height: 52,
158
+ borderRadius: 12,
159
+ backgroundColor: "#111827",
160
+ alignItems: "center",
161
+ justifyContent: "center",
162
+ },
163
+ buttonLabel: {
164
+ color: "#FFFFFF",
165
+ fontSize: 16,
166
+ fontWeight: "600",
167
+ },
168
+ });
@@ -0,0 +1,48 @@
1
+ {
2
+ "expo": {
3
+ "name": "{{projectName}}",
4
+ "slug": "{{projectName}}",
5
+ "version": "1.0.0",
6
+ "orientation": "portrait",
7
+ "icon": "./assets/images/icon.png",
8
+ "scheme": "expobase",
9
+ "userInterfaceStyle": "automatic",
10
+ "newArchEnabled": true,
11
+ "ios": {
12
+ "supportsTablet": true
13
+ },
14
+ "android": {
15
+ "adaptiveIcon": {
16
+ "backgroundColor": "#E6F4FE",
17
+ "foregroundImage": "./assets/images/android-icon-foreground.png",
18
+ "backgroundImage": "./assets/images/android-icon-background.png",
19
+ "monochromeImage": "./assets/images/android-icon-monochrome.png"
20
+ },
21
+ "edgeToEdgeEnabled": true,
22
+ "predictiveBackGestureEnabled": false
23
+ },
24
+ "web": {
25
+ "output": "static",
26
+ "favicon": "./assets/images/favicon.png"
27
+ },
28
+ "plugins": [
29
+ "expo-router",
30
+ [
31
+ "expo-splash-screen",
32
+ {
33
+ "image": "./assets/images/splash-icon.png",
34
+ "imageWidth": 200,
35
+ "resizeMode": "contain",
36
+ "backgroundColor": "#ffffff",
37
+ "dark": {
38
+ "backgroundColor": "#000000"
39
+ }
40
+ }
41
+ ]
42
+ ],
43
+ "experiments": {
44
+ "typedRoutes": true,
45
+ "reactCompiler": true
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,10 @@
1
+ // https://docs.expo.dev/guides/using-eslint/
2
+ const { defineConfig } = require('eslint/config');
3
+ const expoConfig = require('eslint-config-expo/flat');
4
+
5
+ module.exports = defineConfig([
6
+ expoConfig,
7
+ {
8
+ ignores: ['dist/*'],
9
+ },
10
+ ]);