Don't mangle user-provided searchParams
string
#325
Merged
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.
When providing a raw searchParams string, currently ky will pass it through
new URLSearchParams()
which has the result of mangling it in places where it is perfectly valid. A simple example is a querystring likea&b=
(which is the output ofqs.stringify({ a: null, b: '' }, { strictNullHandling: true })
) is changed toa=&b=
which semantically has a different meaning (a and b are both empty string).This change is pretty simple, if a user provides a string don't mess with it - use it directly. This is a breaking change and should be released as a major if landed. I added one new test for a specific case with null values and also had to update other tests.