UNPKG

@patchworkdev/pdk

Version:

Patchwork Development Kit

64 lines (63 loc) 2.32 kB
"use strict"; 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}`); } }