import { createWriteStream, type WriteStream } from 'fs' import { paths } from './paths' /** * Journalisation sur disque du launcher (logs/launcher.log). * * Capture tout ce qui transite par `events.ts` (sortie jeu + packwiz + messages * de phase + erreurs), pour pouvoir dépanner un joueur à distance. Le fichier * est tronqué au début de chaque session "Jouer". */ let stream: WriteStream | null = null function ts(): string { return new Date().toISOString() } /** Ouvre (en tronquant) un nouveau fichier de log et écrit un en-tête. */ export function startSession(): void { stream?.end() stream = createWriteStream(paths.launcherLogFile, { flags: 'w' }) stream.write(`=== Session OFLauncher ${ts()} ===\n`) } /** Ajoute une ligne au log courant (no-op si aucune session ouverte). */ export function write(line: string): void { if (!stream) return const text = line.endsWith('\n') ? line : `${line}\n` stream.write(text) }