UNPKG

check-my-env

Version:

Scans your code for used process.env variables and checks if they're defined in your .env

40 lines (32 loc) 1.08 kB
const fs = require('fs'); const path = require('path'); const dotenv = require('dotenv'); const glob = require('glob'); // Load env vars from .env dotenv.config(); function getEnvVarsUsedInCode(dir) { const files = glob.sync(`${dir}/**/*.{js,ts,jsx,tsx}`, { ignore: ['node_modules/**', 'dist/**', 'build/**'], }); const regex = /process\.env\.([a-zA-Z_][a-zA-Z0-9_]*)/g; const vars = new Set(); files.forEach(file => { const content = fs.readFileSync(file, 'utf8'); let match; while ((match = regex.exec(content)) !== null) { vars.add(match[1]); } }); return Array.from(vars); } function checkEnvUsage(rootDir = process.cwd()) { const usedEnvVars = getEnvVarsUsedInCode(rootDir); const missing = usedEnvVars.filter(key => !process.env[key]); if (missing.length > 0) { console.error(`❌ Missing the following environment variables used in code:\n${missing.map(k => `- ${k}`).join('\n')}`); process.exit(1); } else { console.log('✅ All environment variables used in code are present in .env'); } } checkEnvUsage();