import dotenv from "dotenv";

/**
 * Carga variables de entorno desde un archivo .env.
 * @param path Ruta al archivo .env (por defecto busca en la raíz).
 */
export function loadEnv(path?: string): void {
  dotenv.config({ path });
}

/**
 * Obtiene el valor de una variable de entorno.
 * @param key Nombre de la variable.
 * @param defaultValue Valor por defecto si no existe.
 * @throws Error si no existe y no se proporcionó defaultValue.
 * @returns Valor de la variable o defaultValue.
 */
export function getConfig(key: string, defaultValue?: string): string {
  const value = process.env[key];
  if (value == null) {
    if (defaultValue != null) return defaultValue;
    throw new Error(`Configuration error: Missing environment variable ${key}`);
  }
  return value;
}
