import { promises as fs } from 'fs' import path from 'path' export default defineEventHandler(async (event) => { try { const cwd = process.cwd() // Prefer internal server/data, fallback to public/data let csvPath if (cwd.endsWith('.output')) { csvPath = path.join(cwd, '../server/data/vereinsmeisterschaften.csv') if (!(await fs.access(csvPath).then(()=>true).catch(()=>false))) { csvPath = path.join(cwd, '../public/data/vereinsmeisterschaften.csv') } } else { csvPath = path.join(cwd, 'server/data/vereinsmeisterschaften.csv') if (!(await fs.access(csvPath).then(()=>true).catch(()=>false))) { csvPath = path.join(cwd, 'public/data/vereinsmeisterschaften.csv') } } // CSV-Datei direkt als Text zurückgeben (keine Caching-Probleme) const csv = await fs.readFile(csvPath, 'utf-8') // Setze Content-Type und Cache-Control Header setHeader(event, 'Content-Type', 'text/csv; charset=utf-8') setHeader(event, 'Cache-Control', 'no-cache, no-store, must-revalidate') setHeader(event, 'Pragma', 'no-cache') setHeader(event, 'Expires', '0') return csv } catch (error) { if (error.code === 'ENOENT') { throw createError({ statusCode: 404, statusMessage: 'Vereinsmeisterschaften-Datei nicht gefunden' }) } console.error('Fehler beim Laden der Vereinsmeisterschaften:', error) throw createError({ statusCode: 500, statusMessage: 'Fehler beim Laden der Vereinsmeisterschaften' }) } })