@summerscar/notify
Version:
send notify by one api
95 lines (66 loc) • 2.12 kB
Markdown
A unified notification library for Node.js, supporting multiple providers with a simple API.
- 🚀 **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](https://ntfy.sh), [Gotify](https://gotify.net).
- 💬 **Chat**: Support for [Telegram](https://telegram.org) Bot API.
- 📦 **ESM Support**: Built as a native ES Module.
- 🔒 **TypeScript**: Written in TypeScript with full type definitions.
## Installation
```bash
npm install @summerscar/notify
```
## Usage
### 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.
```typescript
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",
});
```
Configure providers using environment variables. You can use a `.env` file in your project root.
```bash
EMAIL_SERVICE=gmail
EMAIL_USER=your_email@gmail.com
EMAIL_PASS=your_app_password
EMAIL_TO=recipient@example.com
```
```bash
NTFY_TOPIC=your_topic
NTFY_TOKEN=your_access_token
```
```bash
GOTIFY_URL=https://gotify.example.com
GOTIFY_TOKEN=your_app_token
```
```bash
TG_BOT_TOKEN=your_bot_token
TG_CHAT_ID=your_chat_id
```
You can also use providers individually if you need more control.
```typescript
import { EmailProvider, NtfyProvider } from "@summerscar/notify";
// Email
const email = new EmailProvider({
service: "gmail",
auth: { user: "...", pass: "..." },
to: "recipient@example.com",
});
await email.send({ title: "Hi", body: "Email body" });
// Ntfy
const ntfy = new NtfyProvider({ topic: "my_topic" });
await ntfy.send({ title: "Hi", body: "Ntfy body" });
```
ISC