projectb/envConvertBasetoString.js
2023-11-30 11:43:11 +05:30

67 lines
2.3 KiB
JavaScript

const path = require('path');
const fs = require('fs');
require('dotenv').config({ path: path.join(__dirname, '.env') });
//this runs on main app
function convertBaseToString() {
var base64 = process.env.MY_CONFIG;
const decodedContents = Buffer.from(base64, 'base64').toString('utf-8');
const configArray = decodedContents.split('\n');
const configObject = {};
configArray.forEach(pair => {
if (pair.trim() !== '') {
const [rawKey, value] = pair.split('=');
const key = rawKey.trim().replace(/^'|'$/g, '');
configObject[key] = value.trim();
}
});
return configObject;
}
//command line utility encode , decode and check add with npm run convertEnvBase64
function envConverter(value) {
var base64 = process.env.MY_CONFIG;
if (value == 'encode') {
const envContents = fs.readFileSync('.env', 'utf-8');
const base64String = Buffer.from(envContents, 'utf-8').toString('base64');
const newEnvContents = `MY_CONFIG = ${base64String}`;
fs.writeFileSync('.env', newEnvContents, 'utf-8');
console.log("Convert String into Base64 is success");
}else if (value == 'decode') {
const envContents = fs.readFileSync('.env', 'utf-8');
const base64String = envContents.split('=')[1].trim();
const originalContents = Buffer.from(base64String, 'base64').toString('utf-8');
fs.writeFileSync('.env', originalContents, 'utf-8');
console.log("Convert Base64 into String is success");
}else if(value == 'check'){
if (base64) {
const decodedContents = Buffer.from(base64, 'base64').toString('utf-8');
const configArray = decodedContents.split('\n');
const configObject = {};
configArray.forEach(pair => {
if (pair.trim() !== '') {
const [rawKey, value] = pair.split('=');
const key = rawKey.trim().replace(/^'|'$/g, '');
configObject[key] = value.trim();
}
});
console.log(configObject);
}else{
console.log("Already Decoded String");
}
}
}
const args = process.argv.slice(2);
envConverter(args[0]);
module.exports = convertBaseToString;