UNPKG

fetch-api-progress

Version:
66 lines (47 loc) 1.86 kB
# fetch-api-progress Upload and download progress for [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). ## Getting started ### Upload progress ```typescript import { trackRequestProgress } from "fetch-api-progress"; const blob = new Blob([new Uint8Array(5 * 1024 * 1024)]); const request = { headers: { "Content-Type": "application/octet-stream" }, method: "PUT", body: blob }; const trackedRequest = trackRequestProgress(request, (progress) => { console.log( `Uploaded ${progress.loaded} bytes out of ${progress.total ?? "unknown"}` ); }); const response = await fetch("https://httpbin.org/put", trackedRequest); ``` ### Download progress ```typescript import { trackResponseProgress } from "fetch-api-progress"; const response = await fetch("https://httpbin.org/put", { headers: { "Content-Type": "application/octet-stream" }, method: "PUT", body: blob }); const trackedResponse = trackResponseProgress(response, (progress) => { console.log( `Downloaded ${progress.loaded} bytes out of ${progress.total ?? "unknown"}` ); }); // Read the response. E.G. with a function from https://github.com/teil-one/fetch-api-progress/blob/main/tests/node/response/tracked.test.mjs await readResponse(trackedResponse); ``` ## Supported platforms | Tracking progress of | Chrome | Edge | Safari | Firefox | Node.js | | -------------------- | ------ | ---- | ------ | ------- | ------- | | Request | ✅ | ✅ | ✅ | ❌ | ✅ | | Response | ✅ | ✅ | ✅ | ✅ | ✅ | ## Integrations Can be used with [api-registry](https://www.npmjs.com/package/api-registry#track-progress) – an HTTP API client. [GitHub](https://github.com/teil-one/fetch-api-progress) · [NPM package](https://www.npmjs.com/package/fetch-api-progress)