1
+ import extraRpcs from "../lib/chainlist/constants/extraRpcs" ;
1
2
import esbuild from "esbuild" ;
2
3
import * as dotenv from "dotenv" ;
3
4
const typescriptEntries = [
@@ -9,6 +10,15 @@ const typescriptEntries = [
9
10
const cssEntries = [ "static/styles/rewards/rewards.css" , "static/styles/audit-report/audit.css" , "static/styles/onboarding/onboarding.css" ] ;
10
11
export const entries = [ ...typescriptEntries , ...cssEntries ] ;
11
12
13
+ const allNetworkUrls : Record < string , string [ ] > = { } ;
14
+ // this flattens all the rpcs into a single object, with key names that match the networkIds. The arrays are just of URLs per network ID.
15
+
16
+ Object . keys ( extraRpcs ) . forEach ( ( networkId ) => {
17
+ const officialUrls = extraRpcs [ networkId ] . rpcs . filter ( ( rpc ) => typeof rpc === "string" ) ;
18
+ const extraUrls : string [ ] = extraRpcs [ networkId ] . rpcs . filter ( ( rpc ) => rpc . url !== undefined ) . map ( ( rpc ) => rpc . url ) ;
19
+ allNetworkUrls [ networkId ] = [ ...officialUrls , ...extraUrls ] ;
20
+ } ) ;
21
+
12
22
export const esBuildContext : esbuild . BuildOptions = {
13
23
sourcemap : true ,
14
24
entryPoints : entries ,
@@ -23,7 +33,7 @@ export const esBuildContext: esbuild.BuildOptions = {
23
33
".svg" : "dataurl" ,
24
34
} ,
25
35
outdir : "static/out" ,
26
- define : createEnvDefines ( [ "SUPABASE_URL" , "SUPABASE_ANON_KEY" ] ) ,
36
+ define : createEnvDefines ( [ "SUPABASE_URL" , "SUPABASE_ANON_KEY" ] , { allNetworkUrls } ) ,
27
37
} ;
28
38
29
39
esbuild
@@ -36,16 +46,22 @@ esbuild
36
46
process . exit ( 1 ) ;
37
47
} ) ;
38
48
39
- function createEnvDefines ( variableNames : string [ ] ) : Record < string , string > {
49
+ function createEnvDefines ( envVarNames : string [ ] , extras : Record < string , unknown > ) : Record < string , string > {
40
50
const defines : Record < string , string > = { } ;
41
51
dotenv . config ( ) ;
42
- for ( const name of variableNames ) {
52
+ for ( const name of envVarNames ) {
43
53
const envVar = process . env [ name ] ;
44
54
if ( envVar !== undefined ) {
45
55
defines [ name ] = JSON . stringify ( envVar ) ;
46
56
} else {
47
57
throw new Error ( `Missing environment variable: ${ name } ` ) ;
48
58
}
49
59
}
60
+ for ( const key in extras ) {
61
+ if ( Object . prototype . hasOwnProperty . call ( extras , key ) ) {
62
+ defines [ key ] = JSON . stringify ( extras [ key ] ) ;
63
+ }
64
+ }
65
+ defines [ "extraRpcs" ] = JSON . stringify ( extraRpcs ) ;
50
66
return defines ;
51
67
}
0 commit comments