fix(commandDir): make dir relative to caller instead of require.main.filename #548
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.
Pull in
get-caller-file
to always interpret the directory given to.commandDir()
as relative to the caller. This actually helps simplify the logic a good bit since I no longer need to keep track of a command-to-dir mapping between calls.The
require
is deliberately lazy, so we only load the dependency if.commandDir()
is called.There are a few different packages that provide the "get filename of caller" functionality, but I chose
get-caller-file
because it was the only one that already had passing tests for the range of Node we need and includes Windows tests (caller
seems to be popular but is lacking the fuller range of testing, andcaller-path
seems to be broken on Node 4+). An added benefit is thatget-caller-file
also seems to be the smallest and only pulls in one dependency.Fixes #529.