JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 982
  • Score
    100M100P100Q98546F
  • License ISC

Small package that provides a promise-based, stream-oriented wrapper around the http and https modules

Package Exports

  • http-request-plus
  • http-request-plus/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (http-request-plus) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

http-request-plus

Package Version Build Status PackagePhobia Latest Commit

Small package that provides a promise-based, stream-oriented wrapper around the http and https modules.

Features:

  • HTTP & HTTPs
  • promise oriented
  • stream oriented
  • request body can be either a buffer/string or a stream
  • content length header automatically set if available
  • handle redirects
  • response emits error on timeout

Install

Installation of the npm package:

> npm install --save http-request-plus

Usage

Example

Easy use case: just downloads and prints a page with error handling.

ES2015 - ES2016:

import httpRequestPlus from "http-request-plus";

async function main() {
  // this is a standard Node's IncomingMessage augmented with the following method:
  //
  // - buffer(): returns a promise to the content of the response in a Buffer
  // - json(): returns a promise to the content of the response parsed as JSON
  // - text(): returns a promise to the content of the response parsed as a UTF-8 string
  const response = await httpRequestPlus("http://example.org", {
    // A request body can provided, either as a buffer/string or a stream
    body: "foo bar",

    // By default, http-request-plus throws if the reponse's status Code is not 2xx
    //
    // This option can be used to bypass this
    bypassStatusCheck: true,

    // Maximum number of redirects that should be handled by http-request-plus
    //
    // Defaults to 5
    maxRedirects: 0,

    // all other options are forwarded to native {http,https}.request()
    //
    // including `timeout` and `signal` which will properly trigger errors
  });

  // any error occuring after the response has been received, including abortion,
  // timeout, or body error (if body is a stream) will be emitted as an `error`
  // event on the response object

  console.log(await response.text());
}

main().catch((error) => console.error("FATAL:", error));

Contributions

Contributions are very welcomed, either on the documentation or on the code.

You may:

  • report any issue you've encountered;
  • fork and create a pull request.

License

ISC © Julien Fontanet