-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for loading env values #23
Open
nkahlor
wants to merge
20
commits into
AmericanAirlines:main
Choose a base branch
from
nkahlor:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+216
−3
Open
Changes from 1 commit
Commits
Show all changes
20 commits
Select commit
Hold shift + click to select a range
749e3eb
use dotenv flow to read in environment
f534154
clean up code
20dcc2f
include a unit test
f4d78df
full coverage
39e4ad4
fix test name
a07693d
reinvent the wheel a bit, just for kicks
4feb523
Merge branch 'main' into main
nkahlor 046ccb2
remove dependency
nkahlor dc3747b
merge filename options
nkahlor d663bb4
unit tests, yay
nkahlor 71b28be
change options name to be more general
nkahlor 1d49d3d
fix formatting
nkahlor a1910ea
cleaning up
nkahlor aabef0b
remove .vscode
nkahlor f10df70
Update index.test.ts
nkahlor 7d7566e
DotEnv parsing instructions
nkahlor e8711ca
Merge branch 'main' of https://github.com/nkahlor/simple-env into main
nkahlor b1058ce
bump minor version
nkahlor cf06e65
Update README.md
nkahlor e2d6dd2
Update README.md
nkahlor File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
cleaning up
commit a1910ea61fc0675703850f34d1bed1f44b2db80b
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
.vscode | ||
|
||
# Logs | ||
logs | ||
*.log | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
import fs from 'fs'; | ||
import parseEnvFile from '../parser'; | ||
|
||
describe('parser', () => { | ||
const readFileSpy = jest.spyOn(fs, 'readFileSync'); | ||
const existsSyncSpy = jest.spyOn(fs, 'existsSync'); | ||
|
||
beforeEach(async () => { | ||
jest.resetModules(); | ||
process.env = {}; | ||
}); | ||
|
||
afterEach(() => { | ||
jest.resetModules(); | ||
}); | ||
|
||
it('will not overwrite vars that already exist', () => { | ||
const originalValue = 'I already exist'; | ||
const newValue = 'I should not'; | ||
process.env = { TEST: originalValue }; | ||
|
||
readFileSpy.mockImplementation(() => Buffer.from(`TEST=${newValue}`)); | ||
existsSyncSpy.mockReturnValue(true); | ||
|
||
parseEnvFile(); | ||
|
||
expect(process.env.TEST).toEqual(originalValue); | ||
}); | ||
|
||
it('will reject malformed lines', () => { | ||
const fakeFile = ` | ||
bad | ||
good=this | ||
4=bad | ||
good2='this' | ||
good3="this" | ||
`; | ||
readFileSpy.mockImplementation(() => Buffer.from(fakeFile)); | ||
existsSyncSpy.mockReturnValue(true); | ||
|
||
parseEnvFile(); | ||
|
||
expect(process.env.good).toEqual('this'); | ||
expect(process.env.good2).toEqual('this'); | ||
expect(process.env.good3).toEqual('this'); | ||
}); | ||
|
||
it('will ignore comments in the file', () => { | ||
const fakeFile = ` | ||
#comment\n | ||
//comment\n | ||
TEST=test | ||
`; | ||
readFileSpy.mockImplementation(() => Buffer.from(fakeFile)); | ||
existsSyncSpy.mockReturnValue(true); | ||
|
||
parseEnvFile(); | ||
|
||
expect(process.env.TEST).toEqual('test'); | ||
}); | ||
|
||
it('will not do anything if the .env file does not exist', () => { | ||
readFileSpy.mockImplementation(() => Buffer.from('TEST=test')); | ||
existsSyncSpy.mockReturnValue(false); | ||
|
||
parseEnvFile(); | ||
|
||
expect(process.env.TEST).toBeUndefined(); | ||
}); | ||
|
||
it('will read an env variable from a .env file into process.env', () => { | ||
readFileSpy.mockImplementation(() => Buffer.from('TEST=test')); | ||
existsSyncSpy.mockReturnValue(true); | ||
|
||
parseEnvFile(); | ||
|
||
expect(process.env.TEST).toEqual('test'); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Including that file was intentional; revert this