fix: handle paths with special characters in injectQuery (fix #2585) #2614
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.
Fixes regression introduced by #2435.
Details
url.parse
, bothnew URL()
andpathToFileURL
will percent-encode path names.new URL()
will not percent-encode the%
character, whereaspathToFileURL
will percent-encode the%
character.%
with%25
before passing it tonew URL()
, but we pass the raw path topathToFileURL
.String.prototype.replaceAll
is a relatively new API and only added to Node 15.0.0, so we're forced to useString.prototype.replace
with a global regex modifier instead.I'm super unhappy about the manual replace but I can't think of a better way to keep the behavior between
new URL()
andpathToFileURL
consistent.