@summerscar/notify
v1.0.1
Published
send notify by one api
Maintainers
Readme
@summerscar/notify
A unified notification library for Node.js, supporting multiple providers with a simple API.
Features
- 🚀 Unified API: Send notifications via multiple channels with a single function.
- 📧 Email: Support for SMTP services (Gmail, etc.) via
nodemailer. - 📱 Push Notifications: Support for Ntfy, Gotify.
- 💬 Chat: Support for Telegram Bot API.
- 📦 ESM Support: Built as a native ES Module.
- 🔒 TypeScript: Written in TypeScript with full type definitions.
Installation
npm install @summerscar/notifyUsage
Unified Notification (Recommended)
The easiest way to use this library is via the notify function. It automatically detects configured providers from environment variables or options.
import notify from "@summerscar/notify";
// Make sure to set environment variables for your providers (see Configuration below)
await notify({
title: "Hello World",
body: "This is a test notification from @summerscar/notify",
});Configuration
Configure providers using environment variables. You can use a .env file in your project root.
EMAIL_SERVICE=gmail
[email protected]
EMAIL_PASS=your_app_password
[email protected]Ntfy
NTFY_TOPIC=your_topic
# Optional
NTFY_TOKEN=your_access_tokenGotify
GOTIFY_URL=https://gotify.example.com
GOTIFY_TOKEN=your_app_tokenTelegram
TG_BOT_TOKEN=your_bot_token
TG_CHAT_ID=your_chat_idIndividual Providers
You can also use providers individually if you need more control.
import { EmailProvider, NtfyProvider } from "@summerscar/notify";
// Email
const email = new EmailProvider({
service: "gmail",
auth: { user: "...", pass: "..." },
to: "[email protected]",
});
await email.send({ title: "Hi", body: "Email body" });
// Ntfy
const ntfy = new NtfyProvider({ topic: "my_topic" });
await ntfy.send({ title: "Hi", body: "Ntfy body" });License
ISC
