New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

xhr-shim

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

xhr-shim

Polyfill XMLHttpRequest.

latest
Source
npmnpm
Version
0.1.3
Version published
Weekly downloads
331
-30.75%
Maintainers
1
Weekly downloads
 
Created
Source

xhr-shim

XMLHttpRequest, reimplemented using fetch.

Why?

  • This allows code using XHR to be tested using Node, with our friend node-fetch.
  • You can also use it inside service workers!

Differences

Due to the nature of fetch(),

  • This does not support synchronous XHR.
  • This does not support progress event.
  • This does not implement XMLHttpRequest.upload.
  • XMLHttpRequest instance is not reusable.
  • HEADERS_RECEIVED and LOADING ready states are skipped.

Because this is still XMLHttpRequest,

  • This does not support omitting cookies for same-origin requests.
  • There is no Promise support.
  • There is no built-in Node.js support. Polyfill using node-fetch.

This does not support obsolete APIs such as:

  • XMLHttpRequest.onreadystatechange
  • Basic authentication in XMLHttpRequest.open (use Authorization header!)

Due to the nature of the main usage,

  • XMLHttpRequest.responseXML always throws.
  • Document cannot be used in XMLHttpRequest.send().
  • The default MIME type is text/plain.
  • Instead of ProgressEvent, CustomEvent is used.

Requirements

This shim assumes you have these ES features:

  • async support
  • class syntax
  • globalThis
  • Object.assign
  • Object.create
  • Object.entries
  • Promise including Promise.prototype.finally
  • Symbol
  • Template literals

And these WHATWG features:

  • AbortController
  • Blob
  • Constructible DOMException
  • EventTarget.prototype.addEventListener with once option
  • fetch API with signal support
  • setTimeout

Keywords

xhr

FAQs

Package last updated on 17 Sep 2022

Did you know?

Socket

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.

Install

Related posts