import fs from 'node:fs'; /** Lädt eine .env-Datei in process.env, ohne bereits gesetzte Variablen zu überschreiben. */ export function loadEnvFile(file) { if (!fs.existsSync(file)) return false; for (const raw of fs.readFileSync(file, 'utf8').split(/\r?\n/)) { const line = raw.trim(); if (!line || line.startsWith('#')) continue; const m = line.match(/^(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(.*)$/); if (!m) continue; let value = m[2]; if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) value = value.slice(1, -1); else if (value.startsWith('#')) value = ''; // "KEY= # optional" – Kommentar ist kein Wert else value = value.replace(/\s+#.*$/, '').trim(); if (process.env[m[1]] === undefined) process.env[m[1]] = value; } return true; }