import fs from "node:fs";
import * as dotenv from "dotenv";
import path from "node:path";

function loadEnvironmentVariables(): void {
  const envName = process.env.NODE_ENV
    ? process.env.NODE_ENV.toLowerCase()
    : "development";

  const fileNames = [
    `.env.${envName}.local`,
    ...(envName !== "test" ? [".env.local"] : []),
    `.env.${envName}`,
    ".env",
  ];

  for (const fileName of fileNames) {
    if (fs.existsSync(fileName)) {
      dotenv.config({
        path: path.resolve(process.cwd(), fileName),
        override: false, // Don't override values that have already been set
      });
    }
  }
}

export default loadEnvironmentVariables;
