UNPKG

maildev

Version:

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

86 lines 2.56 kB
/** * maildev * * Main CLI package for MailDev - SMTP Server and Web Interface * for reading and testing emails during development. */ // The value below is a dev-time fallback. On build, scripts/set-version.mjs // rewrites this constant in dist/index.js to match package.json's version. export const VERSION = '3.0.0-rc.1'; // Re-export configuration types and utilities export * from './config/types.js'; export { getDefaultConfig, DEFAULT_CONFIG } from './config/defaults.js'; export { loadConfig, discoverConfigFile, loadConfigFile } from './config/loader.js'; export { resolveConfig } from './config/merge.js'; export { validateConfig, formatValidationErrors } from './config/validate.js'; export { loadEnvConfig, getEnvVarName } from './config/env.js'; // Re-export server orchestration export { Orchestrator, createOrchestrator } from './server/orchestrator.js'; export { setupShutdownHandlers, removeShutdownHandlers } from './server/shutdown.js'; // Re-export logger export { Logger, createLogger } from './utils/logger.js'; // Re-export CLI options configuration export { configureOptions, ENV_VARS, CONFIG_FILES } from './options.js'; import { getDefaultConfig } from './config/defaults.js'; import { createOrchestrator } from './server/orchestrator.js'; import { createLogger } from './utils/logger.js'; /** * Main MailDev class for programmatic usage * * @example * ```typescript * import { MailDev } from 'maildev' * * const maildev = new MailDev({ * smtp: 1025, * web: 1080, * }) * * await maildev.start() * * // ... use maildev * * await maildev.stop() * ``` */ export class MailDev { orchestrator; constructor(config = {}) { const fullConfig = { ...getDefaultConfig(), ...config }; const logger = createLogger({ verbose: fullConfig.verbose ?? false, silent: fullConfig.silent ?? false, }); this.orchestrator = createOrchestrator({ config: fullConfig, logger, }); } /** * Start MailDev servers */ async start() { return this.orchestrator.start(); } /** * Stop MailDev servers */ async stop() { return this.orchestrator.stop(); } /** * Check if servers are running */ isRunning() { return this.orchestrator.isRunning(); } /** * Get server instances */ getServers() { return this.orchestrator.getServers(); } } // Default export for convenience export default MailDev; //# sourceMappingURL=index.js.map