env-sentinel
Version:
Zero-dependency tool that auto-validates .env files against schema.env, with optional fallback and secure warnings.
27 lines (26 loc) • 868 B
JavaScript
export function noInvalidKeyCharactersCheck(lineNumber, lineContent) {
const equalIndex = lineContent.indexOf('=');
if (equalIndex === -1) {
return;
}
const rawKey = lineContent.slice(0, equalIndex).trim();
const unquotedKey = rawKey.replace(/^['"]|['"]$/g, '');
if (unquotedKey === '') {
return;
}
const keyBody = unquotedKey.slice(1);
if (keyBody === '') {
return;
}
const invalidChars = [...keyBody].filter((char) => !/^[\x20-\x7E]$/.test(char));
const uniqueInvalid = [...new Set(invalidChars)];
if (uniqueInvalid.length === 0)
return;
const listed = uniqueInvalid.map((c) => `"${c}"`).join(', ');
return {
line: lineNumber,
issue: `Variable name contains invalid character(s): ${listed}`,
content: lineContent,
severity: 'error',
};
}