Detect unused environment variables by comparing process.env with envalid's cleanEnv result.
npm install envalid-unusedimport { cleanEnv, str, num } from 'envalid';
import { warnUnused } from 'envalid-unused';
const env = cleanEnv(process.env, {
API_URL: str(),
PORT: num(),
});
// Warn about any env variables not defined in the schema
warnUnused(env);
// Output: [envalid-unused] Found 2 unused environment variable(s): DATABASE_URL, SECRET_KEYcleanedEnv- The result from envalid'scleanEnvfunctionoptions- Optional configuration object:warn- Custom warning function (default:console.warn)ignorePrefixes- Array of prefixes to ignore (default: common system prefixes likenpm_,NODE_, etc.)ignore- Array of specific variable names to ignore
Array of unused environment variable names.
const unused = warnUnused(env, {
warn: (msg) => logger.warn(msg),
ignorePrefixes: ['npm_', 'NODE_', 'CI_'],
ignore: ['DEBUG', 'VERBOSE'],
});
if (unused.length > 0) {
// Handle unused variables
}Export of the default prefixes that are ignored:
import { DEFAULT_IGNORE_PREFIXES } from 'envalid-unused';
// Extend the defaults
warnUnused(env, {
ignorePrefixes: [...DEFAULT_IGNORE_PREFIXES, 'MY_PREFIX_'],
});MIT