1- import { assertNonNullish , isNullish } from '@dfinity/utils' ;
1+ import { assertNonNullish , isNullish , nonNullish } from '@dfinity/utils' ;
22import type { PrincipalText } from '@dfinity/zod-schemas' ;
33import type { JunoConfig , JunoConfigEnv , OrbiterConfig , SatelliteConfig } from '@junobuild/config' ;
44import { red } from 'kleur' ;
@@ -18,28 +18,57 @@ interface OrbiterConfigEnv {
1818 env : JunoConfigEnv ;
1919}
2020
21- export const assertConfigAndLoadSatelliteContext = async ( ) : Promise < {
21+ interface SatelliteContext {
2222 satellite : SatelliteParametersWithId ;
2323 satelliteConfig : SatelliteConfig ;
24+ }
25+
26+ interface OrbiterContext {
27+ orbiter : OrbiterParametersWithId ;
28+ orbiterConfig : OrbiterConfig ;
29+ }
30+
31+ export const assertConfigAndLoadContext = async ( ) : Promise < {
32+ satellite : SatelliteContext ;
33+ orbiter : OrbiterContext | undefined ;
2434} > => {
35+ const { satellite : satelliteConfig , orbiter : orbiterConfig } = await assertAndReadJunoConfig ( ) ;
36+
37+ const { satelliteId} = assertAndReadSatelliteId ( { satellite : satelliteConfig , env : ENV } ) ;
38+
39+ // TS guard. assertAndReadSatelliteId exist if satelliteId is undefined.
40+ // Should not happen.
41+ assertNonNullish ( satelliteId ) ;
42+
43+ const { orbiterId} = readOrbiterId ( { orbiter : orbiterConfig , env : ENV } ) ;
44+
45+ const parameters = await actorParameters ( ) ;
46+
47+ return {
48+ satellite : { satellite : { satelliteId, ...parameters } , satelliteConfig} ,
49+ orbiter :
50+ nonNullish ( orbiterId ) && nonNullish ( orbiterConfig )
51+ ? {
52+ orbiter : { orbiterId, ...parameters } ,
53+ orbiterConfig
54+ }
55+ : undefined
56+ } ;
57+ } ;
58+
59+ export const assertConfigAndLoadSatelliteContext = async ( ) : Promise < SatelliteContext > => {
2560 const { satellite : satelliteConfig } = await assertAndReadJunoConfig ( ) ;
2661
2762 const satellite = await satelliteParameters ( { satellite : satelliteConfig , env : ENV } ) ;
2863
29- // TS guard. satelliteParameters exit if satelliteId is undefined.
64+ // TS guard. satelliteParameters exist if satelliteId is undefined.
3065 // Should not happen.
3166 assertNonNullish ( satellite . satelliteId ) ;
3267
3368 return { satellite, satelliteConfig} ;
3469} ;
3570
36- export const assertConfigAndLoadOrbiterContext = async ( ) : Promise <
37- | {
38- orbiter : OrbiterParametersWithId ;
39- orbiterConfig : OrbiterConfig ;
40- }
41- | undefined
42- > => {
71+ export const assertConfigAndLoadOrbiterContext = async ( ) : Promise < OrbiterContext | undefined > => {
4372 const { orbiter : orbiterConfig } = await assertAndReadJunoConfig ( ) ;
4473
4574 if ( isNullish ( orbiterConfig ) ) {
0 commit comments