fix: reject with error from parent context on close #102
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.
This PR does two things:
code
orsignal
, it rejects with an error from the parent context to preserve that more useful stack traceChanges the error message fromI removed this from the PR since it could be a breaking change sincecommand failed
to@npmcli/promise-spawn command failed
. I feel likecommand failed
looks too generic when thrown in the context of the npm CLI and this makes it clear that the error came from spawning something.npm
looks for this error message. It would be better to give this a better message further up the stack.It also refactors a bit to remove one level of nesting. It uses the
Promise.withResolvers()
pattern to hoist the resolve and reject functions since none of the work actually needs to be done within the Promise executor.Example
Here's a before and after of
npm rebuild --loglevel verbose
of a failingpreinstall
script. Some output is removed for clarity/brevity.before
after