@@ -4,10 +4,9 @@ import { version } from "./package.json"
44type Environment = "development" | "preview" | "production"
55
66type EnvironmentConfig = {
7- scheme : string
8- androidPackage : string
9- domain : string
107 appName : string
8+ scheme : string
9+ webDomain : string
1110 icon : string
1211 ios : {
1312 bundleIdentifier : string
@@ -18,13 +17,18 @@ type EnvironmentConfig = {
1817 package : string
1918 googleServicesFile : string
2019 }
21- alchemyApiKey : string
2220}
2321
24- // Type assertion for process.env to include our Expo public variables
25- const env = process . env as {
26- EXPO_PUBLIC_ALCHEMY_API_KEY ?: string
27- EXPO_ENV ?: string
22+ export type IExpoAppConfigExtra = {
23+ webDomain : string
24+ expoEnv : Environment
25+ eas : {
26+ projectId : string
27+ }
28+ }
29+
30+ type ICustomExpoConfig = ExpoConfig & {
31+ extra : IExpoAppConfigExtra
2832}
2933
3034const settings : Record < Environment , EnvironmentConfig > = {
@@ -39,11 +43,9 @@ const settings: Record<Environment, EnvironmentConfig> = {
3943 package : "com.convos.dev" ,
4044 googleServicesFile : "./google-services/android/development.json" ,
4145 } ,
42- androidPackage : "com.convos.dev" ,
43- domain : "dev.convos.org" ,
44- appName : "Convos DEV" ,
46+ webDomain : "dev.convos.org" ,
47+ appName : "Convos Dev" ,
4548 icon : "./assets/icon-preview.png" ,
46- alchemyApiKey : env . EXPO_PUBLIC_ALCHEMY_API_KEY || "" ,
4749 } ,
4850 preview : {
4951 scheme : "convos-preview" ,
@@ -56,11 +58,9 @@ const settings: Record<Environment, EnvironmentConfig> = {
5658 package : "com.convos.preview" ,
5759 googleServicesFile : "./google-services/android/preview.json" ,
5860 } ,
59- androidPackage : "com.convos.preview" ,
60- domain : "preview.convos.org" ,
61- appName : "Convos PREVIEW" ,
61+ webDomain : "preview.convos.org" ,
62+ appName : "Convos Preview" ,
6263 icon : "./assets/icon-preview.png" ,
63- alchemyApiKey : env . EXPO_PUBLIC_ALCHEMY_API_KEY || "" ,
6464 } ,
6565 production : {
6666 scheme : "convos" ,
@@ -73,18 +73,17 @@ const settings: Record<Environment, EnvironmentConfig> = {
7373 package : "com.convos.prod" ,
7474 googleServicesFile : "./google-services/android/production.json" ,
7575 } ,
76- androidPackage : "com.convos.prod" ,
77- domain : "convos.org" ,
76+ webDomain : "convos.org" ,
7877 appName : "Convos" ,
7978 icon : "./assets/icon.png" ,
80- alchemyApiKey : env . EXPO_PUBLIC_ALCHEMY_API_KEY || "" ,
8179 } ,
8280}
8381
84- export default ( ) : ExpoConfig => {
82+ export default ( ) => {
8583 const expoEnv = ( process . env . EXPO_ENV || "development" ) as Environment
8684 const config = settings [ expoEnv ]
8785
86+ // Add "as CustomExpoConfig" here to type the entire config object
8887 return {
8988 name : config . appName ,
9089 scheme : config . scheme ,
@@ -102,6 +101,7 @@ export default (): ExpoConfig => {
102101 url : "https://u.expo.dev/f9089dfa-8871-4aff-93ea-da08af0370d2" ,
103102 } ,
104103 extra : {
104+ webDomain : config . webDomain ,
105105 expoEnv,
106106 eas : {
107107 projectId : "f9089dfa-8871-4aff-93ea-da08af0370d2" ,
@@ -145,7 +145,7 @@ export default (): ExpoConfig => {
145145 {
146146 action : "VIEW" ,
147147 category : [ "DEFAULT" , "BROWSABLE" ] ,
148- data : [ { scheme : config . scheme } , { scheme : config . androidPackage } ] ,
148+ data : [ { scheme : config . scheme } , { scheme : config . android . package } ] ,
149149 } ,
150150 {
151151 autoVerify : true ,
@@ -154,22 +154,27 @@ export default (): ExpoConfig => {
154154 data : [
155155 {
156156 scheme : "https" ,
157- host : config . domain ,
157+ host : config . webDomain ,
158+ pathPrefix : "/coinbase" ,
159+ } ,
160+ {
161+ scheme : "https" ,
162+ host : config . webDomain ,
158163 pathPrefix : "/" ,
159164 } ,
160165 {
161166 scheme : "https" ,
162- host : config . domain ,
167+ host : config . webDomain ,
163168 pathPrefix : "/dm" ,
164169 } ,
165170 {
166171 scheme : "https" ,
167- host : config . domain ,
172+ host : config . webDomain ,
168173 pathPrefix : "/group-invite" ,
169174 } ,
170175 {
171176 scheme : "https" ,
172- host : config . domain ,
177+ host : config . webDomain ,
173178 pathPrefix : "/group" ,
174179 } ,
175180 ] ,
@@ -311,5 +316,5 @@ export default (): ExpoConfig => {
311316 [ "@react-native-firebase/app-check" ] ,
312317 "./scripts/android/build/android-deps-expo-plugin.js" ,
313318 ] ,
314- }
319+ } as ICustomExpoConfig
315320}
0 commit comments