@@ -46,6 +46,8 @@ import {
4646
4747type UrlRemap = { [ url : string ] : string } ;
4848
49+ const COMMUNICATIONS_LEGACY_MODULES = [ 'email' , 'sms' , 'pushNotifications' ] as const ;
50+
4951class ConduitGrpcSdk {
5052 public readonly name : string ;
5153 public readonly instance : string ;
@@ -325,6 +327,12 @@ class ConduitGrpcSdk {
325327 if ( ( ! found || found . length === 0 ) && this . _modules [ r ] ) {
326328 this . _modules [ r ] ?. closeConnection ( ) ;
327329 emitter . emit ( `module-connection-update:${ r } ` , false ) ;
330+ if ( r === 'communications' ) {
331+ for ( const legacyModule of COMMUNICATIONS_LEGACY_MODULES ) {
332+ this . _modules [ legacyModule ] ?. closeConnection ( ) ;
333+ emitter . emit ( `module-connection-update:${ legacyModule } ` , false ) ;
334+ }
335+ }
328336 }
329337 } ) ;
330338 modules . forEach ( ( m : ModuleListResponse_ModuleResponse ) => {
@@ -337,6 +345,11 @@ class ConduitGrpcSdk {
337345 this . createModuleClient ( m . moduleName , m . url ) ;
338346 }
339347 emitter . emit ( `module-connection-update:${ m . moduleName } ` , true ) ;
348+ if ( m . moduleName === 'communications' ) {
349+ for ( const legacyModule of COMMUNICATIONS_LEGACY_MODULES ) {
350+ emitter . emit ( `module-connection-update:${ legacyModule } ` , true ) ;
351+ }
352+ }
340353 } ) ;
341354 } ) ;
342355 emitter . on ( 'core-status-update' , ( ) => {
@@ -431,6 +444,11 @@ class ConduitGrpcSdk {
431444 r . forEach ( m => {
432445 this . createModuleClient ( m . moduleName , m . url ) ;
433446 emitter . emit ( `module-connection-update:${ m . moduleName } ` , m . serving ) ;
447+ if ( m . moduleName === 'communications' ) {
448+ for ( const legacyModule of COMMUNICATIONS_LEGACY_MODULES ) {
449+ emitter . emit ( `module-connection-update:${ legacyModule } ` , m . serving ) ;
450+ }
451+ }
434452 } ) ;
435453 return 'ok' ;
436454 } )
@@ -480,6 +498,20 @@ class ConduitGrpcSdk {
480498 ) ;
481499 this . _modules [ moduleName ] . initializeClient ( ConduitModuleDefinition ) ;
482500 }
501+
502+ // When communications is created, also create legacy module clients
503+ if ( moduleName === 'communications' ) {
504+ for ( const legacyModule of COMMUNICATIONS_LEGACY_MODULES ) {
505+ if ( ! this . _modules [ legacyModule ] && this . _availableModules [ legacyModule ] ) {
506+ ConduitGrpcSdk . Logger . info ( `Creating gRPC client for ${ legacyModule } ` ) ;
507+ this . _modules [ legacyModule ] = new this . _availableModules [ legacyModule ] (
508+ this . name ,
509+ moduleUrl ,
510+ this . _grpcToken ,
511+ ) ;
512+ }
513+ }
514+ }
483515 }
484516
485517 isModuleUp ( moduleName : string , moduleUrl : string , service : string = '' ) {
0 commit comments