UNPKG

envample

Version:

Generates .env.example from your .env file

64 lines 2.26 kB
"use strict"; 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