UNPKG

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.88 kB
export { WaitlistManager } from './core/WaitlistManager.mjs'; export { EmailContext, JoinResult, MailProvider, SearchOptions, StorageProvider, WaitlistEntry, WaitlistManagerConfig } from './types.mjs'; export { MemoryStorage } from './adapters/storage/MemoryStorage.mjs'; export { MongooseStorage, MongooseStorageConfig } from './adapters/storage/MongooseStorage.mjs'; export { SequelizeStorage, SequelizeStorageConfig } from './adapters/storage/SequelizeStorage.mjs'; export { NodemailerConfig, NodemailerProvider } from './adapters/mail/NodemailerProvider.mjs'; export { ConsoleMailProvider } from './adapters/mail/ConsoleMailProvider.mjs'; 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 };