Files
klarbild/src/lib/init.ts
T

25 lines
1.1 KiB
TypeScript

import { runMigrations } from './db';
import { ensureBucket } from './storage';
import { seed } from './seed';
import { startImageWorker } from '../worker';
let started: Promise<void> | null = null;
/** Einmalige Server-Initialisierung (idempotent, beim ersten Request ausgelöst). */
export function ensureInit(): Promise<void> {
if (!started) {
started = (async () => {
await runMigrations();
try { await ensureBucket(); } catch (e) { console.error('[init] S3 nicht bereit:', e); }
await seed();
try { await startImageWorker(); } catch (e) { console.error('[init] Worker-Start fehlgeschlagen:', e); }
try { const { setupTelegram } = await import('./telegram'); await setupTelegram(); }
catch (e) { console.error('[init] Telegram-Setup fehlgeschlagen:', e); }
try { const { startMaintenance } = await import('./maintenance'); startMaintenance(); }
catch (e) { console.error('[init] Wartung-Start fehlgeschlagen:', e); }
console.log('[init] Klarbild bereit.');
})().catch((e) => { started = null; throw e; });
}
return started;
}