import { loadConfig } from './config/index.js'; import { createLogger } from './utils/logger.js'; import { bootstrap } from './bootstrap.js'; import { runMainLoop } from './main-loop.js'; import { createDatabase, runMigrations } from './database/client.js'; import { ConfigStore } from './config/persistence.js'; async function main(): Promise { const logger = createLogger(); logger.info('='.repeat(60)); logger.info('Reddit Bot Starting'); logger.info('='.repeat(60)); let config; const db = createDatabase({ database: { path: process.env.DATABASE_PATH ?? './data/reddit-bot.db' }, }); runMigrations(db); try { config = loadConfig(new ConfigStore(db)); logger.info(`Loaded configuration for ${config.reddit.subreddits.length} subreddits`); } catch (error) { logger.error('Failed to load configuration:', error); process.exit(1); } const app = await bootstrap(config, logger, db); await runMainLoop(app); } main().catch((error) => { console.error('Fatal error:', error); process.exit(1); });