← back to Rentv Adintel

lib/env.js

26 lines

'use strict';
/**
 * Minimal zero-dependency .env loader. Reads ./.env if present and populates
 * process.env for keys not already set. Keeps the house stack free of dotenv.
 */
const fs = require('fs');
const path = require('path');

const envPath = path.join(__dirname, '..', '.env');
try {
  if (fs.existsSync(envPath)) {
    const lines = fs.readFileSync(envPath, 'utf8').split(/\r?\n/);
    for (const line of lines) {
      const m = line.match(/^\s*([A-Z0-9_]+)\s*=\s*(.*)\s*$/i);
      if (!m) continue;
      const key = m[1];
      let val = m[2];
      if (/^".*"$/.test(val) || /^'.*'$/.test(val)) val = val.slice(1, -1);
      if (process.env[key] === undefined) process.env[key] = val;
    }
  }
} catch (e) {
  // eslint-disable-next-line no-console
  console.warn('[env] could not load .env:', e.message);
}