1.1.0 • Published 3 years ago

@endom8rix/async-request v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

npm

@endom8rix/async-request

A lightweight, zero-dependency request wrapper to facilitate asynchronous requests.

Setup

$ npm install @endom8rix/async-request

Usage

const request = require('@endom8rix/async-request');

try {
  const response = await request('https://www.npmjs.com/');
  console.log(response.headers);
  console.log(response.body);
}
catch (error) {
  console.log(error);
}

This async-request module can handle both HTTP and HTTPS requests, and will automatically populate the Content-Length header to match the size of the request body.

// GET request using HTTP
await request('http://www.example.com/');

// GET request using HTTPS
await request('https://www.example.com/');

// GET request using a URL object
await request(new URL('https://www.example.com/'));

// POST request with an empty request body
await request('https://www.example.com/', { method: 'POST' });

// POST request with a String as the request body
await request('https://www.example.com/', { method: 'POST' }, 'Hello World');

Note that if the Content-Type header is not defined, the request body will be sent as-is. If you attempt to use a non-String or non-Buffer value, an error will occur.

Some MIME types are handled automatically:

// POST request with a JSON request body
await request('https://www.example.com/', { method: 'POST', headers: { 'Content-Type': 'application/json' } }, { say: 'Hello', to: 'World' });

// POST request with a URL-encoded Form request body
await request('https://www.example.com/', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }, { say: 'Hello', to: 'World' });

A full list of options can be found on the respective http and https module pages.

1.1.0

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago