import { BARE_KEY_SECTIONS } from '../model/component-types.js'; const BARE_KEY_ORDER = ['QuestText', 'QuestData']; export function writeIni( sections: Record>, bareKeySections?: Record, comment?: string ): string { const lines: string[] = []; // Header comment lines.push(comment ?? '; Saved by version: 0.1.0'); lines.push(''); // Write Quest section first (if present) if (sections['Quest']) { writeSection(lines, 'Quest', sections['Quest']); } // Write bare-key sections in defined order for (const name of BARE_KEY_ORDER) { if (bareKeySections?.[name]) { lines.push(`[${name}]`); for (const entry of bareKeySections[name]) { lines.push(entry); } lines.push(''); } } // Write remaining sections (skip Quest, already written) for (const [name, kvPairs] of Object.entries(sections)) { if (name === 'Quest') continue; writeSection(lines, name, kvPairs); } return lines.join('\n'); } function writeSection( lines: string[], name: string, kvPairs: Record ): void { lines.push(`[${name}]`); for (const [key, value] of Object.entries(kvPairs)) { lines.push(`${key}=${value}`); } lines.push(''); }