
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
@building-block/xhr-fetch
Advanced tools
XHR-powered fetch implementation with upload and download updates
XHR-powered fetch implementation with extras
Although fetch
is a relatively low-level API and in most cases more complete than XMLHttpRequest, it does not provide an API for request progression. A proposal for FetchObserver
is being
worked on but currently it is not possible to implement request progression using just fetch
.
xhr-fetch
provides a fetch
-like interface, enough to make it a viable replacement for XMLHttpRequest
, that also implements a non-standard request and response progression API.
If response progression is all you need, fetch
does provide a low-level API for response progression. In that case we recommend that you stick with the standards unless you prefer a higher level abstraction.
$ npm install --save @building-block/xhr-fetch
$ yarn add @building-block/xhr-fetch
import xhrFetch from '@building-block/xhr-fetch';
xhrFetch('https://postman-echo.com/put', {
method: 'PUT',
headers: { /* headers */ },
body: { /* body */ },
onDownloadProgress = (xhrEvent) => {
console.log('Upload progression', xhrEvent);
},
onUploadProgress = (xhrEvent) => {
console.log('Download progression', xhrEvent);
},
});
Try with Runkit
To provide a better user experience, you might want to display progression over time such as bitrate (speed), remaining time, transferred bytes, and overall transfer progress, you can use @building-block/track-progress.
xhr-fetch
supports the abortable fetch API. This feature requires that you include additional polyfills for AbortController, AbortSignal and DOMException.
import xhrFetch from '@building-block/xhr-fetch';
const abortController = new AbortController();
xhrFetch('/endpoint', {
signal: abortController.signal,
}).catch((error) => {
if (error.name === 'AbortError') {
console.log('Aborted');
}
});
abortController.abort();
fetch
polyfill?This package is not meant to replace fetch
. If you're looking for a fetch polyfill, you should use
whatwg-fetch. If you are looking to use fetch in Node.js, you can
with node-fetch. In universal environments, you can replace
whatwg-fetch and node-fetch with just cross-fetch.
FAQs
XHR-powered fetch implementation with upload and download updates
The npm package @building-block/xhr-fetch receives a total of 24 weekly downloads. As such, @building-block/xhr-fetch popularity was classified as not popular.
We found that @building-block/xhr-fetch demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.