31 lines
798 B
JavaScript
31 lines
798 B
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
function parseEnvFile(filePath) {
|
|
const result = {};
|
|
if (!fs.existsSync(filePath)) return result;
|
|
|
|
const content = fs.readFileSync(filePath, 'utf8');
|
|
for (const line of content.split('\n')) {
|
|
const trimmed = line.trim();
|
|
if (!trimmed || trimmed.startsWith('#')) continue;
|
|
|
|
const eqIndex = trimmed.indexOf('=');
|
|
if (eqIndex === -1) continue;
|
|
|
|
const key = trimmed.slice(0, eqIndex).trim();
|
|
let value = trimmed.slice(eqIndex + 1).trim();
|
|
|
|
// Strip surrounding quotes
|
|
if ((value.startsWith('"') && value.endsWith('"')) ||
|
|
(value.startsWith("'") && value.endsWith("'"))) {
|
|
value = value.slice(1, -1);
|
|
}
|
|
|
|
result[key] = value;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
module.exports = { parseEnvFile };
|