Request
Licence: MIT

A wrapper for the http and https modules request function. I put this together to be able to simplify my api requests..
Install
npm install @superhero/request
...or just set the dependency in your package.json file:
{
"dependencies":
{
"@superhero/request": "*"
}
}
Example
const
Request = require('@superhero/request'),
request = new Request();
request.post('example.com/foobar').then((result) => console.log(result.status, result.headers, result.data));
request.post({url:'https://example.com/foobar', data: {foo:'bar',baz:'qux'}}).then(console.log);
Options
Options for the constructor.
{
debug: false,
debug_color: 'cyan',
debug_date: true',
// the debug prefix message
debug_prefix: 'debug request:',
// a seperator between debug message
debug_separator: ' ',
// this url will be used to resolve any provided url in the fetch call
url: '',
// optional proxy url (example: http://user:password@www.example.com:666)
proxy: '',
// headers that will be used in every request
headers: {},
// maximum attempts for retryable transport failures; values below 2 disable retries
retry: 0,
// retry client timeouts; defaults to true for GET, otherwise false
retryOnClientTimeout: undefined,
// retry interrupted or incomplete responses; defaults to true for GET
retryOnResponseError: undefined,
// timeout
timeout: 30e3,
// specifies if you want the ssl unauthorization to be rejected or not
rejectUnauthorized: true
}
Options for each request
{
url: '',
data: undefined,
headers: {},
retry: 0,
retryOnClientTimeout: undefined,
retryOnResponseError: undefined,
timeout: ?,
pipe: Writable,
stream: Writable
}
Response retries apply to buffered responses. Piped or streamed responses are
fulfilled when the response stream is returned, so later stream failures cannot
restart the request. Enabling retries for POST, PUT, or DELETE can repeat a
request the server has already processed.