UNPKG

alinea

Version:
50 lines (48 loc) 1.42 kB
import "../../chunks/chunk-NZLE2WMY.js"; // src/cli/util/EnsureEnv.ts import fs from "node:fs"; import path from "node:path"; var attempt = [".env.local", ".env"]; function ensureEnv(cwd = process.cwd()) { const LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm; let src = void 0; for (const file of attempt) { try { const dotEnvFile = path.resolve(cwd, file); src = fs.readFileSync(dotEnvFile, "utf-8"); break; } catch { } } if (src === void 0) { const parent = path.dirname(cwd); if (parent === cwd) return; return ensureEnv(path.dirname(cwd)); } const obj = {}; let lines = src.toString(); lines = lines.replace(/\r\n?/gm, "\n"); let match; while ((match = LINE.exec(lines)) != null) { const key = match[1]; let value = match[2] || ""; value = value.trim(); const maybeQuote = value[0]; value = value.replace(/^(['"`])([\s\S]*)\1$/gm, "$2"); if (maybeQuote === '"') { value = value.replace(/\\n/g, "\n"); value = value.replace(/\\r/g, "\r"); } obj[key] = value; const processEnv = process.env; for (const key2 of Object.keys(obj)) { if (Object.prototype.hasOwnProperty.call(processEnv, key2)) { } else { processEnv[key2] = obj[key2]; } } } } export { ensureEnv };