34 lines
997 B
JavaScript
34 lines
997 B
JavaScript
import fs from 'node:fs';
|
|
import path from 'node:path';
|
|
import { fileURLToPath } from 'node:url';
|
|
|
|
const projectRoot = path.join(path.dirname(fileURLToPath(import.meta.url)), '..');
|
|
|
|
function loadEnvFile(filePath) {
|
|
if (!fs.existsSync(filePath)) return;
|
|
for (const line of fs.readFileSync(filePath, 'utf8').split('\n')) {
|
|
const trimmed = line.trim();
|
|
if (!trimmed || trimmed.startsWith('#')) continue;
|
|
const eq = trimmed.indexOf('=');
|
|
if (eq < 0) continue;
|
|
const key = trimmed.slice(0, eq).trim();
|
|
const value = trimmed.slice(eq + 1).trim();
|
|
if (!process.env[key]) process.env[key] = value;
|
|
}
|
|
}
|
|
|
|
export function loadProjectEnv() {
|
|
for (const file of ['.env', '.env.local']) {
|
|
loadEnvFile(path.join(projectRoot, file));
|
|
}
|
|
const memindRoot = process.env.MEMIND_LIB_ROOT?.trim();
|
|
if (memindRoot) {
|
|
for (const file of ['.env', '.env.local']) {
|
|
loadEnvFile(path.join(memindRoot, file));
|
|
}
|
|
}
|
|
return projectRoot;
|
|
}
|
|
|
|
export { projectRoot };
|