UNPKG

multi-stream-chatbot

Version:

Chatbot framework that listens and sends messages to multiple streaming platforms simultaneously

39 lines (32 loc) 855 B
class AbstractStream { constructor() { this.listeners = [] } listen() { throw new Error("Unimplemented") } addMessageHandler(handler) { if (!this.listeners.includes(handler)) { this.listeners.push(handler) } } removeMessageHandler(handler) { this.listeners = this.listeners.filter(l => l !== handler) } notifyListeners(message, publisher, ctx) { const extraCtx = ctx || {} const defaultCtx = { streamType: this.constructor.name } this.listeners.forEach(l => l(message, publisher, { ...defaultCtx, ...extraCtx }) ) } } class AbstractTargetedMessagePublisher { sendMessage(message) { throw new Error("Unimplemented") } } module.exports = { AbstractStream, AbstractTargetedMessagePublisher }