waitlist-mailer
Version:
Modern, modular TypeScript library for managing waitlists with pluggable storage and mail providers. Supports MongoDB, SQL databases, and custom adapters with zero required dependencies for basic usage.
55 lines (51 loc) • 1.87 kB
TypeScript
export { WaitlistManager } from './core/WaitlistManager.js';
export { EmailContext, JoinResult, MailProvider, SearchOptions, StorageProvider, WaitlistEntry, WaitlistManagerConfig } from './types.js';
export { MemoryStorage } from './adapters/storage/MemoryStorage.js';
export { MongooseStorage, MongooseStorageConfig } from './adapters/storage/MongooseStorage.js';
export { SequelizeStorage, SequelizeStorageConfig } from './adapters/storage/SequelizeStorage.js';
export { NodemailerConfig, NodemailerProvider } from './adapters/mail/NodemailerProvider.js';
export { ConsoleMailProvider } from './adapters/mail/ConsoleMailProvider.js';
import 'events';
/**
* @fileoverview
* waitlist-mailer v2.1.0 - Modern, modular TypeScript library for managing waitlists
*
* This library provides a clean, dependency-injection based architecture for:
* - Managing email waitlists
* - Sending confirmation emails
* - Flexible storage backends (Memory, MongoDB, PostgreSQL, MySQL, SQLite)
* - Custom mail providers (Nodemailer, Console, custom implementations)
*
* @example
* ```typescript
* import { WaitlistManager } from 'waitlist-mailer';
* import { MemoryStorage } from 'waitlist-mailer/adapters/memory';
* import { NodemailerProvider } from 'waitlist-mailer/adapters/nodemailer';
*
* const storage = new MemoryStorage();
* const mailer = new NodemailerProvider({
* host: 'smtp.example.com',
* port: 587,
* user: 'sender@example.com',
* pass: 'password'
* });
*
* const waitlist = new WaitlistManager({
* storage,
* mailer,
* companyName: 'My App'
* });
*
* // Simple usage
* const result = await waitlist.join('user@example.com', {
* name: 'John Doe',
* source: 'ProductHunt'
* });
* ```
*/
/**
* Version of the library.
* Used for debugging and version checks.
*/
declare const VERSION = "2.1.0";
export { VERSION };