UNPKG

maildev

Version:

SMTP Server and Web Interface for reading and testing emails during development

88 lines 1.96 kB
/** * MailDev Server Orchestrator * * Main class that manages all MailDev servers (Storage, SMTP, API) */ import { type Storage } from '@maildev/core'; import { type SMTPServer } from '@maildev/smtp'; import { type APIServer } from '@maildev/api'; import type { MailDevConfig } from '../config/types.js'; import { Logger } from '../utils/logger.js'; /** * Server instances managed by orchestrator */ export interface Servers { storage: Storage; smtp: SMTPServer; api?: APIServer; } /** * Orchestrator options */ export interface OrchestratorOptions { config: MailDevConfig; logger: Logger; } /** * Server Orchestrator * * Creates and manages Storage, SMTP, and API servers */ export declare class Orchestrator { private config; private logger; private storage; private smtp; private api; private running; constructor(options: OrchestratorOptions); /** * Start all servers */ start(): Promise<Servers>; /** * Stop all servers gracefully */ stop(): Promise<void>; /** * Check if servers are running */ isRunning(): boolean; /** * Get server instances */ getServers(): Servers | null; /** * Create storage instance based on config */ private createStorage; /** * Get SMTP authentication config */ private getSmtpAuth; /** * Get web authentication config */ private getWebAuth; /** * Get relay configuration */ private getRelayConfig; /** * Get auto-relay configuration */ private getAutoRelayConfig; /** * Create SMTP logger adapter */ private createSmtpLogger; /** * Set up email event handlers */ private setupEmailHandlers; } /** * Create a new orchestrator instance */ export declare function createOrchestrator(options: OrchestratorOptions): Orchestrator; //# sourceMappingURL=orchestrator.d.ts.map