maildev
Version:
SMTP Server and Web Interface for reading and testing emails during development
86 lines • 2.56 kB
JavaScript
/**
* 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