diff --git a/src/chat-handler.ts b/src/chat-handler.ts index c86431f..62b5433 100644 --- a/src/chat-handler.ts +++ b/src/chat-handler.ts @@ -99,12 +99,26 @@ export class ChatHandler implements IDisposable { } } + /** + * A function called before transferring the message to the panel(s). + * Can be useful if some actions are required on the message. + */ + protected formatChatMessage( + message: ChatService.IChatMessage + ): ChatService.IChatMessage { + return message; + } + private _onMessage(message: ChatService.IMessage): void { // resolve promise from `sendMessage()` if (message.type === 'msg' && message.sender.id === this.id) { this._sendResolverQueue.shift()?.(message.id); } + if (message.type === 'msg') { + message = this.formatChatMessage(message as ChatService.IChatMessage); + } + // call listeners in serial this._listeners.forEach(listener => listener(message)); } diff --git a/src/index.ts b/src/index.ts index 4f60ddf..263e4aa 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,4 @@ export * from './chat-handler'; +export * from './services'; export * from './widgets/chat-error'; export * from './widgets/chat-sidebar';