From 2618d472dc6873853af59446317bb3843a7c350f Mon Sep 17 00:00:00 2001 From: Benjamin Toby Date: Thu, 22 May 2025 10:04:18 +0100 Subject: [PATCH] Updates --- dist/package-shared/utils/parse-env.d.ts | 4 +-- dist/package-shared/utils/parse-env.js | 43 ++++++++++++++++------- package-shared/utils/parse-env.ts | 44 +++++++++++++++++------- package.json | 2 +- 4 files changed, 65 insertions(+), 28 deletions(-) diff --git a/dist/package-shared/utils/parse-env.d.ts b/dist/package-shared/utils/parse-env.d.ts index 6fa5e62..f14d6ab 100644 --- a/dist/package-shared/utils/parse-env.d.ts +++ b/dist/package-shared/utils/parse-env.d.ts @@ -1,3 +1,3 @@ -export default function parseEnv(/** Env File Path */ envPath: string): { +export default function parseEnv(envFile: string): { [k: string]: string; -}; +} | undefined; diff --git a/dist/package-shared/utils/parse-env.js b/dist/package-shared/utils/parse-env.js index 6a19a86..db3a122 100644 --- a/dist/package-shared/utils/parse-env.js +++ b/dist/package-shared/utils/parse-env.js @@ -5,17 +5,36 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); exports.default = parseEnv; const fs_1 = __importDefault(require("fs")); -const path_1 = __importDefault(require("path")); -function parseEnv(/** Env File Path */ envPath) { - let obj = {}; - const finalEnvPath = path_1.default.resolve(process.cwd(), envPath); - const envFile = fs_1.default.readFileSync(finalEnvPath, "utf-8"); - const envLinesArr = envFile - .split(/\r\n|\n|\r/) - .filter((ln) => ln.match(/\=/)); - envLinesArr.forEach((ln) => { - const keyValArr = ln.split("="); - obj[keyValArr[0]] = keyValArr[1] || ""; +function parseEnv(envFile) { + if (!fs_1.default.existsSync(envFile)) + return undefined; + const envTextContent = fs_1.default.readFileSync(envFile, "utf-8"); + const envLines = envTextContent + .split("\n") + .map((ln) => ln.trim()) + .filter((ln) => { + const commentLine = ln.match(/^\#/); + const validEnv = ln.match(/.*\=/); + if (commentLine) + return false; + if (validEnv) + return true; + return false; }); - return obj; + const newEnvObj = {}; + for (let i = 0; i < envLines.length; i++) { + const emvLine = envLines[i]; + const envLineArr = emvLine.split("="); + const envTitle = envLineArr[0]; + const envValue = envLineArr[1]; + if (!(envTitle === null || envTitle === void 0 ? void 0 : envTitle.match(/./))) + continue; + if (envValue === null || envValue === void 0 ? void 0 : envValue.match(/./)) { + newEnvObj[envTitle] = envValue; + } + else { + newEnvObj[envTitle] = ""; + } + } + return newEnvObj; } diff --git a/package-shared/utils/parse-env.ts b/package-shared/utils/parse-env.ts index 17d5c26..1c67e32 100644 --- a/package-shared/utils/parse-env.ts +++ b/package-shared/utils/parse-env.ts @@ -1,18 +1,36 @@ import fs from "fs"; -import path from "path"; -export default function parseEnv(/** Env File Path */ envPath: string) { - let obj: { [k: string]: string } = {}; - const finalEnvPath = path.resolve(process.cwd(), envPath); - const envFile = fs.readFileSync(finalEnvPath, "utf-8"); - const envLinesArr = envFile - .split(/\r\n|\n|\r/) - .filter((ln) => ln.match(/\=/)); +export default function parseEnv(envFile: string) { + if (!fs.existsSync(envFile)) return undefined; + const envTextContent = fs.readFileSync(envFile, "utf-8"); + const envLines = envTextContent + .split("\n") + .map((ln) => ln.trim()) + .filter((ln) => { + const commentLine = ln.match(/^\#/); + const validEnv = ln.match(/.*\=/); - envLinesArr.forEach((ln) => { - const keyValArr = ln.split("="); - obj[keyValArr[0]] = keyValArr[1] || ""; - }); + if (commentLine) return false; + if (validEnv) return true; + return false; + }); - return obj; + const newEnvObj: { [k: string]: string } = {}; + + for (let i = 0; i < envLines.length; i++) { + const emvLine = envLines[i]; + const envLineArr = emvLine.split("="); + const envTitle = envLineArr[0]; + const envValue = envLineArr[1] as string | undefined; + + if (!envTitle?.match(/./)) continue; + + if (envValue?.match(/./)) { + newEnvObj[envTitle] = envValue; + } else { + newEnvObj[envTitle] = ""; + } + } + + return newEnvObj; } diff --git a/package.json b/package.json index f26e8d9..028defc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/datasquirel", - "version": "4.6.2", + "version": "4.6.3", "description": "Cloud-based SQL data management tool", "main": "dist/index.js", "bin": {