fix(parse-env-file): fix strip comments per PR #333

This commit is contained in:
Todd Bluhm 2024-12-03 05:59:31 -09:00
parent e51b3207c6
commit 8f5a956844
No known key found for this signature in database
GPG Key ID: 9CF312607477B8AB
3 changed files with 9 additions and 16 deletions

View File

@ -85,14 +85,8 @@ export function parseEnvVars(envString) {
* Strips out comments from env file string * Strips out comments from env file string
*/ */
export function stripComments(envString) { export function stripComments(envString) {
const commentsRegex = /(^#.*$)/gim; const commentsRegex = /(^\s*#.*$)/gim;
let match = commentsRegex.exec(envString); return envString.replace(commentsRegex, '');
let newString = envString;
while (match != null) {
newString = newString.replace(match[1], '');
match = commentsRegex.exec(envString);
}
return newString;
} }
/** /**
* Strips out newlines from env file string * Strips out newlines from env file string

View File

@ -94,14 +94,8 @@ export function parseEnvVars(envString: string): Environment {
* Strips out comments from env file string * Strips out comments from env file string
*/ */
export function stripComments(envString: string): string { export function stripComments(envString: string): string {
const commentsRegex = /(^#.*$)/gim const commentsRegex = /(^\s*#.*$)/gim
let match = commentsRegex.exec(envString) return envString.replace(commentsRegex, '')
let newString = envString
while (match != null) {
newString = newString.replace(match[1], '')
match = commentsRegex.exec(envString)
}
return newString
} }
/** /**

View File

@ -16,6 +16,11 @@ describe('stripComments', (): void => {
const envString = stripComments('#BOB=COOL\nNODE_ENV=dev\nANSWER=42 AND COUNTING\n#AnotherComment\n') const envString = stripComments('#BOB=COOL\nNODE_ENV=dev\nANSWER=42 AND COUNTING\n#AnotherComment\n')
assert(envString === '\nNODE_ENV=dev\nANSWER=42 AND COUNTING\n\n') assert(envString === '\nNODE_ENV=dev\nANSWER=42 AND COUNTING\n\n')
}) })
it('should not strip out #s from values', (): void => {
const envString = stripComments('#\nBOB=COMMENT#ELL\n#\nNODE_ENV=dev\nANSWER=42 AND COUNTING\n#AnotherComment\n')
assert(envString === '\nBOB=COMMENT#ELL\n\nNODE_ENV=dev\nANSWER=42 AND COUNTING\n\n', envString)
})
}) })
describe('parseEnvVars', (): void => { describe('parseEnvVars', (): void => {