Skip to content

fix(deps): update dependency react-native-url-polyfill to v4 - #999

Open
renovate[bot] wants to merge 1 commit into
devfrom
renovate/react-native-url-polyfill-4.x
Open

renovate[bot] wants to merge 1 commit into
devfrom
renovate/react-native-url-polyfill-4.x

Conversation

@renovate

@renovate renovate Bot commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
react-native-url-polyfill ^3.0.0 → ^4.0.0 age confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

charpeni/react-native-url-polyfill (react-native-url-polyfill)

v4.0.0

Compare Source

v4 replaces the whatwg-url-without-unicode dependency with a purpose-built, dependency-free implementation of the WHATWG URL Standard.

The result is a polyfill that is substantially smaller and faster on Hermes, with stronger standards compliance and test coverage.

65% Smaller

Measured in a production Metro bundle with React Native 0.86.0:

Version Bundle impact
v3.0.0 73.02 kB
v4.0.0 25.50 kB

That is 47.52 kB less, a 65.1% reduction in added bundle size.

Faster Than v3 on Hermes

Using the standalone Hermes runtime from React Native 0.81.4, v4 was faster than v3's whatwg-url-without-unicode implementation in every comparable workload.

Operation Improvement
Absolute URL construction 3.60x faster
Relative URL construction 3.28x faster
Percent-encoded URL construction 3.72x faster
URL property getters 2.71x faster
URL setters 3.34x faster
URLSearchParams parsing 7.82x faster
URLSearchParams stringification 2.43x faster
URLSearchParams manipulation 5.52x faster
Repeated URLSearchParams mutation 1.43x faster
URL/search params roundtrip 4.46x faster
Repeated attached searchParams.append() ~259x faster

Most comparable workloads improved by 2.4x to 7.8x.

Faster Than Expo on Hermes

v4 was also faster than Expo's whatwg-url-minimum@0.1.2 implementation in 13 of 14 workloads.

Operation Improvement
Absolute URL construction 2.31x faster
Relative URL construction 2.14x faster
URL.canParse() with valid input 2.20x faster
URL.parse() 2.25x faster
Percent-encoded URL construction 1.81x faster
URL setters 1.98x faster
URLSearchParams parsing 2.08x faster
URL/search params roundtrip 1.69x faster
Repeated attached searchParams.append() ~59x faster

Expo was 1.49x faster in the isolated repeated URLSearchParams.set()/delete() workload. URL property getters were effectively tied, with v4 measuring 1.04x faster.

These benchmarks use the desktop standalone Hermes runtime bundled with React Native 0.81.4. They are useful for comparing implementations under the same runtime, but are not representative of device performance.

More Trustworthy

v4 considerably expands standards and runtime coverage:

  • Added a pinned official Web Platform Tests suite for URL and URLSearchParams.
  • Added WebIDL conformance coverage.
  • Added WPT execution inside React Native on Hermes.
  • Added React Native 0.84 Android coverage.
  • Verified that public types remain compatible with Node.js and whatwg-url.
  • Added dedicated Node and standalone-Hermes benchmark runners.

The release passes 1,703 tests, including all 28 pinned WPT files and variants. The only documented exceptions require IDNA processing, which remains intentionally excluded to keep the polyfill lightweight.

New API

Added URL.parse(), which returns a parsed URL or null when the input is invalid.

URL.parse('https://example.com');
// URL

URL.parse('not a URL');
// null
Upgrading

The documented URL, URLSearchParams, setupURLPolyfill(), and react-native-url-polyfill/auto APIs remain available.

Applications relying on undocumented quirks of the previous whatwg-url-based implementation should verify their URL handling after upgrading.

As before, Unicode/IDNA hostname processing is intentionally unsupported.

What's Changed
  • Implement our own spec-compliant polyfill in #​497
  • Add official WPT and Hermes coverage in #​501
  • Optimize ASCII parser classification in #​499
  • Optimize repeated URLSearchParams mutations in #​502
  • Optimize attached URLSearchParams appends in #​503
  • Optimize UTF-8 percent encoding in #​504
  • Optimize URL.canParse() and normalized parsing in #​505
  • Optimize URLSearchParams mutations and benchmarks in #​506
  • Harden URL WebIDL conformance in #​507
  • Fix pre-release package contents and types in #​508
  • Add standalone Hermes benchmark runner in #​509

Full Changelog: charpeni/react-native-url-polyfill@v3.0.0...v4.0.0


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the dependencies Issues related to dependency updates or management label Oct 3, 2026
@renovate

renovate Bot commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor Author

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: formulus/package-lock.json
npm warn Unknown env config "store". This will error in a future major version of npm. See `npm help npmrc` for supported config options.
npm warn Unknown project config "node-linker". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving: formulus-app@1.4.0
npm error Found: react-native-nitro-modules@0.35.10
npm error node_modules/react-native-nitro-modules
npm error   react-native-nitro-modules@"^0.35.10" from the root project
npm error
npm error Could not resolve dependency:
npm error peer react-native-nitro-modules@">=0.36.5" from react-native-nitro-sound@0.2.20
npm error node_modules/react-native-nitro-sound
npm error   react-native-nitro-sound@"^0.2.19" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry this command with --force or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /runner/cache/others/npm/_logs/2026-10-05T21_15_26_829Z-eresolve-report.txt
npm error A complete log of this run can be found in: /runner/cache/others/npm/_logs/2026-10-05T21_15_26_829Z-debug-0.log

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Issues related to dependency updates or management

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants