This repository has been archived by the owner on Jan 22, 2025. It is now read-only.
replace cross-fetch
with isomorphic-unfetch
#25500
Closed
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.
Problem
cross-fetch
injectsXMLHttpRequest
into the bundled outputs of web3.js and this is incompatible with workers, so web3.js cannot run inside web or service workers.This also means it can't run inside server-based workers like 'cloudflare workers'
As a result it might be incompatible with some of the suggested deployment paths for popular tools like https://remix.run
Finally it is also adding extra unnecessary bloat into browsers where fetch is already supported e.g.
var xhr = new XMLHttpRequest();
in https://cdn.jsdelivr.net/npm/@solana/web3.js@1.43.1/lib/index.browser.esm.jsSummary of Changes
replace
cross-fetch
withisomorphic-unfetch
ponyfillCompatibility
Tested as working for
node (commonjs)
node (esmodules)
browser <script type="text/javascript">
browser <script type="module">
by running
yarn build
&&yarn link
in this PR branchthen
yarn link @solana/web3.js
& running each of thepackage.json
scripts in https://github.com/wentokay/unfetch-testrelated: