@superhero/request
v2.5.1
Published
Wrapper for the http and https modules request function
Downloads
5,218
Readme
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.
{
// if true, some output for debugging is logged to the console
debug: false,
// debug console color
debug_color: 'cyan',
// if the debug console should be prefixed with the date time
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:[email protected]:666)
proxy: '',
// headers that will be used in every request
headers: {},
// maximum attempts for retryable transport failures; values below 2 disable retries
retry: 0,
// delay in milliseconds before each retry
retryDelay: 200,
// 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
{
// the url to make the request to, relative paths will be resolved against
// the provided url in the constructor
url: '',
// an object map of the data to send with the request
data: undefined,
// an object map of headers to send with the request
headers: {},
// maximum attempts for retryable transport failures; values below 2 disable retries
retry: 0,
// delay in milliseconds before each retry; inherits the constructor setting
retryDelay: 200,
// 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, inherit from setting in the constructor
timeout: ?,
// https://nodejs.org/api/stream.html#stream_writable_streams
pipe: Writable,
// alias for pipe
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.
