@patchworkdev/pdk
Version:
Patchwork Development Kit
64 lines (63 loc) • 2.32 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEnvFile = getEnvFile;
exports.writeEnvFile = writeEnvFile;
const promises_1 = __importDefault(require("fs/promises"));
const error_1 = require("./error");
const logger_1 = require("./logger");
async function getEnvFile(filePath, createIfNotExists = true, example) {
try {
await promises_1.default.access(filePath);
}
catch {
if (createIfNotExists) {
let contents = '';
if (example) {
try {
const exampleEnv = await promises_1.default.readFile(example, 'utf-8');
contents = exampleEnv;
}
catch (error) {
logger_1.logger.error(`Error reading example file: ${example}`);
}
}
await promises_1.default.writeFile(filePath, contents, 'utf-8');
}
else {
logger_1.logger.error(`File does not exist: ${filePath}`);
throw new error_1.PDKError(error_1.ErrorCode.FILE_NOT_FOUND, `File does not exist ${filePath}`);
}
}
try {
const data = await promises_1.default.readFile(filePath, 'utf-8');
const envVars = {};
const lines = data.split('\n');
for (const line of lines) {
const [key, value] = line.split('=');
if (key && value) {
envVars[key.trim()] = value.trim();
}
}
return envVars;
}
catch (error) {
logger_1.logger.error(`Error reading file: ${filePath}`);
throw new error_1.PDKError(error_1.ErrorCode.FILE_READ_ERROR, `Error reading file ${filePath}`);
}
}
async function writeEnvFile(content, filePath) {
const output = [];
for (const key in content) {
output.push(`${key}=${content[key]}`);
}
try {
await promises_1.default.writeFile(filePath, output.join('\n'), 'utf-8');
}
catch (error) {
logger_1.logger.error(`Error writing to file: ${filePath}`);
throw new error_1.PDKError(error_1.ErrorCode.FILE_SAVE_ERROR, `Error writing to file ${filePath}`);
}
}