refactoring to ts
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import { HandleEnvVarsFnParams } from "../types";
|
||||
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
|
||||
export default function handleEnvVars({ json }: HandleEnvVarsFnParams): string {
|
||||
let newJson = json;
|
||||
try {
|
||||
let envVars = { ...process.env };
|
||||
const localEnvFilePath = path.resolve(process.cwd(), "./.env");
|
||||
|
||||
if (fs.existsSync(localEnvFilePath)) {
|
||||
const localEnvText = fs.readFileSync(localEnvFilePath, "utf8");
|
||||
const localEnvKeyPairArray = localEnvText
|
||||
.split("\n")
|
||||
.filter(
|
||||
(keyPair) =>
|
||||
keyPair &&
|
||||
keyPair.match(/.{3,}/) &&
|
||||
!keyPair.match(/^\#/)
|
||||
)
|
||||
.map((keyPair) => keyPair.trim());
|
||||
|
||||
localEnvKeyPairArray.forEach((keyPair) => {
|
||||
let keyPairArray = keyPair.split("=");
|
||||
const key = keyPairArray.shift();
|
||||
const value = keyPairArray.join("=");
|
||||
|
||||
if (!key) return;
|
||||
|
||||
const newEnvObject: { [k: string]: any } = {};
|
||||
newEnvObject[key] = value;
|
||||
|
||||
envVars = { ...envVars, ...newEnvObject };
|
||||
});
|
||||
}
|
||||
|
||||
for (let key in envVars) {
|
||||
newJson = newJson.replaceAll(`$${key}`, String(envVars[key]));
|
||||
}
|
||||
} catch (error: any) {
|
||||
console.log(`Error replacing Environment variables`, error.message);
|
||||
return json;
|
||||
}
|
||||
|
||||
return newJson;
|
||||
}
|
||||
Reference in New Issue
Block a user