Skip to content

Commit df1f06e

Browse files
committed
fix: propagate message handler from MessagingManager to providers
- Add setMessageHandler to MessagingProvider interface - MessagingManager.setMessageHandler now propagates to all registered providers - MessagingManager.registerProvider sets handler on new providers if already configured
1 parent 0934e38 commit df1f06e

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

src/messaging/manager.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@ export class MessagingManager {
2020
}
2121

2222
/**
23-
* Set the message handler callback
23+
* Set the message handler callback and propagate to all registered providers
2424
*/
2525
setMessageHandler(handler: MessageHandlerCallback): void {
2626
this.messageHandler = handler;
27+
for (const provider of this.providers.values()) {
28+
provider.setMessageHandler(handler);
29+
}
2730
}
2831

2932
/**
@@ -34,6 +37,10 @@ export class MessagingManager {
3437
this.logger.warn({ platform: provider.platform }, 'Provider already registered, replacing');
3538
}
3639
this.providers.set(provider.platform, provider);
40+
// Propagate existing handler to newly registered provider
41+
if (this.messageHandler) {
42+
provider.setMessageHandler(this.messageHandler);
43+
}
3744
this.logger.info({ platform: provider.platform }, 'Provider registered');
3845
}
3946

src/messaging/types.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ export interface MessagingProvider {
6868
readonly platform: Platform;
6969
readonly isEnabled: boolean;
7070

71+
/**
72+
* Set the message handler callback for incoming messages
73+
*/
74+
setMessageHandler(handler: MessageHandlerCallback): void;
75+
7176
/**
7277
* Start the provider (connect to platform, start webhook server, etc.)
7378
*/

0 commit comments

Comments
 (0)