@andy-toolforge/messaging
v0.1.0
Published
Messenger facade + Telegram/Discord/Console adapters for automation notifications
Readme
@andy-toolforge/messaging
Notify automation pipelines through one facade. Telegram, Discord, or plain console — same payload shape.
Install
npm install @andy-toolforge/messagingQuick start
const { Messenger, TelegramAdapter, ConsoleAdapter } = require('@andy-toolforge/messaging');
const messenger = new Messenger({
telegram: new TelegramAdapter({ token: process.env.TELEGRAM_BOT_TOKEN, defaultChatId: '123456789' }),
console: new ConsoleAdapter(),
});
await messenger.send('telegram', { text: 'Build finished' });
await messenger.sendAll({ text: 'Job done' }); // fan-out to every adapterAdapters
| Adapter | Env var | Options | Payload |
|---|---|---|---|
| TelegramAdapter | TELEGRAM_BOT_TOKEN | token, defaultChatId, parseMode (default Markdown) | { chatId?, text, parseMode? } |
| DiscordAdapter | DISCORD_BOT_TOKEN | token, defaultChannelId | { channelId?, text } |
| ConsoleAdapter | — | prefix (default [messaging]) | { text } |
All adapters implement async send(payload) and throw on failure (missing config or HTTP error).
Messenger API
new Messenger(adapters)— object mapping name → adapterregister(name, adapter)— chainableget(name)send(name, payload)— throwsMessenger: unknown adapter <name>if not registeredsendAll(payload)— never throws; returns[{ name, ok, result | error }]per adapter
Zero dependencies
The package uses Node's global fetch (Node >= 18) — no HTTP client dependency required.
Testing
npm test -w @andy-toolforge/messaging