mirror of
https://github.com/toddbluhm/env-cmd.git
synced 2025-12-08 18:23:33 +00:00
Fix newline character parsing in .env files
This commit is contained in:
parent
9171dc06cb
commit
25de68f281
@ -7,6 +7,7 @@
|
||||
- **Change**: Update package-lock.json file
|
||||
- **Feature**: Added support for asyncronous .env and .rc files
|
||||
- **Feature**: Added support for a programmatic API
|
||||
- **Fix**: Keep newline (`\n`) characters intact when parsing env files
|
||||
- **Change**: Added node v10 and v12 to build automation
|
||||
|
||||
## 8.0.2
|
||||
|
||||
@ -53,7 +53,9 @@ export function parseEnvVars (envString: string): { [key: string]: string } {
|
||||
const value = match[3].trim() || ''
|
||||
|
||||
// remove any surrounding quotes
|
||||
matches[key] = value.replace(/(^['"]|['"]$)/g, '')
|
||||
matches[key] = value
|
||||
.replace(/(^['"]|['"]$)/g, '')
|
||||
.replace(`\\n`, `\n`)
|
||||
}
|
||||
return matches
|
||||
}
|
||||
@ -78,4 +80,4 @@ export function stripComments (envString: string): string {
|
||||
export function stripEmptyLines (envString: string): string {
|
||||
const emptyLinesRegex = /(^\n)/gim
|
||||
return envString.replace(emptyLinesRegex, '')
|
||||
}
|
||||
}
|
||||
@ -97,30 +97,19 @@ describe('getEnvFileVars', (): void => {
|
||||
it('should parse a json file', async (): Promise<void> => {
|
||||
const env = await getEnvFileVars('./test/test-files/test.json')
|
||||
assert.deepEqual(env, {
|
||||
'development': {
|
||||
'THANKS': 'FOR ALL THE FISH',
|
||||
'ANSWER': 0
|
||||
},
|
||||
'production': {
|
||||
'THANKS': 'FOR WHAT?!',
|
||||
'ANSWER': 42,
|
||||
'ONLY': 'IN PRODUCTION'
|
||||
}
|
||||
'THANKS': 'FOR WHAT?!',
|
||||
'ANSWER': 42,
|
||||
'ONLY': 'IN PRODUCTION',
|
||||
'GALAXY': 'hitch\nhiking'
|
||||
})
|
||||
})
|
||||
|
||||
it('should parse a js file', async (): Promise<void> => {
|
||||
const env = await getEnvFileVars('./test/test-files/test.js')
|
||||
assert.deepEqual(env, {
|
||||
'development': {
|
||||
'THANKS': 'FOR ALL THE FISH',
|
||||
'ANSWER': 0
|
||||
},
|
||||
'production': {
|
||||
'THANKS': 'FOR WHAT?!',
|
||||
'ANSWER': 42,
|
||||
'ONLY': 'IN PRODUCTION'
|
||||
}
|
||||
'THANKS': 'FOR ALL THE FISH',
|
||||
'ANSWER': 0,
|
||||
'GALAXY': 'hitch\nhiking'
|
||||
})
|
||||
})
|
||||
|
||||
@ -137,7 +126,8 @@ describe('getEnvFileVars', (): void => {
|
||||
assert.deepEqual(env, {
|
||||
'THANKS': 'FOR WHAT?!',
|
||||
'ANSWER': '42',
|
||||
'ONLY': 'IN=PRODUCTION'
|
||||
'ONLY': 'IN=PRODUCTION',
|
||||
'GALAXY': 'hitch\nhiking'
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
THANKS = FOR WHAT?!
|
||||
ANSWER=42
|
||||
ONLY= "IN=PRODUCTION"
|
||||
ONLY= "IN=PRODUCTION"
|
||||
GALAXY="hitch\nhiking"
|
||||
@ -1,11 +1,5 @@
|
||||
module.exports = {
|
||||
'development': {
|
||||
'THANKS': 'FOR ALL THE FISH',
|
||||
'ANSWER': 0
|
||||
},
|
||||
'production': {
|
||||
'THANKS': 'FOR WHAT?!',
|
||||
'ANSWER': 42,
|
||||
'ONLY': 'IN PRODUCTION'
|
||||
}
|
||||
'THANKS': 'FOR ALL THE FISH',
|
||||
'ANSWER': 0,
|
||||
'GALAXY': 'hitch\nhiking'
|
||||
}
|
||||
|
||||
@ -1,11 +1,6 @@
|
||||
{
|
||||
"development": {
|
||||
"THANKS": "FOR ALL THE FISH",
|
||||
"ANSWER": 0
|
||||
},
|
||||
"production": {
|
||||
"THANKS": "FOR WHAT?!",
|
||||
"ANSWER": 42,
|
||||
"ONLY": "IN PRODUCTION"
|
||||
}
|
||||
"THANKS": "FOR WHAT?!",
|
||||
"ANSWER": 42,
|
||||
"ONLY": "IN PRODUCTION",
|
||||
"GALAXY": "hitch\nhiking"
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user