Pass in empty string to URL constructor if no opts.uri defined #190
+1
−1
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.
During some routine package updates to our React Native application (which uses
m3u8-parser
internally - thanks for the package!), @timardex found that the minor bump broke a part of our app. We found that the bundled URL implementation behaves differently to browsers when it receives a URL with anundefined
first argument.The URL spec says that whatever value is parsed in should be stringified, but
undefined
can't be stringified. Browsers / node must just not hit a code path where this is a problem.However in our bundled react-native, the URL constructor looks like this: (look at the
// !!!!!PROBLEM HERE!!!
line)Of course, you can't call
.startsWith
onundefined
, so this small fix just passes an empty string into the URL constructor ifopts.uri
isundefined
Thanks again for the package, we've worked around it by pinning ourselves to
7.1.0
until this is patched 😄