envample
Version:
Generates .env.example from your .env file
64 lines • 2.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.envample = void 0;
const readline_1 = require("readline");
const fs_1 = require("fs");
const path_1 = require("path");
/**
* @description: Generates .env.example file from your .env file
*/
function envample(inputFile, outputFile) {
return new Promise((res, reject) => {
const envFile = inputFile || (0, path_1.resolve)(process.cwd(), '.env');
if (!(0, fs_1.existsSync)(envFile)) {
return reject(Error(`${envFile} file not found`));
}
const envExampleFile = outputFile || '.env.example';
const stream = (0, readline_1.createInterface)({
input: (0, fs_1.createReadStream)(envFile),
});
const envs = [];
let value;
let useValue = false;
let ignoreNext = false;
stream
.on('line', (line) => {
if (ignoreNext) {
ignoreNext = false;
return;
}
if (line.startsWith('# ignore')) {
ignoreNext = true;
return;
}
if (line.startsWith('# example')) {
const [, ...example] = line.split('=');
if (example === null || example === void 0 ? void 0 : example.length) {
value = example.join('=');
}
else {
useValue = true;
}
envs.push(line);
return;
}
if (line.startsWith('#') || line.trim() === '') {
envs.push(line);
useValue = false;
value = undefined;
return;
}
const [left, ...right] = line.split('=');
envs.push(`${left}=${value ? value : useValue ? right.join('=') : ''}`);
value = undefined;
useValue = false;
})
.on('close', () => {
console.info(`🎉 ${envExampleFile} generated from ${envFile} 🚀`);
(0, fs_1.writeFileSync)(envExampleFile, envs.join('\r\n'), 'utf8');
return res(null);
});
});
}
exports.envample = envample;
//# sourceMappingURL=envample.js.map