fix: polyfill erroneously polyfills qs module #46
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.
The problem:
The polyfill plugin is incorrectly polyfilling the npm module qs.
The subtlety is noticed when passing a second parameter to the stringify function. Node's
querystring.stringify
function has a different signature from the npm module's function with the same name.Node's second argument is a separator string, whereas
qs
expects an object. so building urls ends up with[Object object]
in the returned string.The fix:
Renaming
polyfills/qs.js
topolyfills/querystring.js
seems to fix it. I'm not sure how much this affects the ecosystem at large, but qs has nearly 70M weekly downloads on npm.Repro:
The error is reproducible with this repository
https://github.com/larryosborn/rollup-plugin-polyfill-node-bug