A fast node request model, works very similar to `request` module but way faster and no dependencies.
npm install fasquestrequest module but way faster and no dependencies + it works in the browser!
npm install fasquest
`$3
`js
const Fasquest = require('fasquest');var options = {
uri: 'http://127.0.0.1/',
resolveWithFullResponse: true
}
Fasquest.request(options).then(res=>{
console.log('hey look I got a response')
})
`$3
`js
import Fasquest from "fasquest";
var options = {
uri: 'http://127.0.0.1/',
resolveWithFullResponse: true
}await Fasquest.request(options);
`$3
- uri (string): The URL to make the request to.
- method (string): The HTTP method to use (default: 'GET').
- qs (object): An object containing query string parameters to be appended to the URL.
- headers (object): An object containing request headers.
- body (string|object): The body of the request. If json is set to true, this should be an object.
- json (boolean): If true, sets the Content-Type header to application/json and stringifies the body.
- form (object): An object containing form data. Sets the Content-Type header to application/x-www-form-urlencoded.
- timeout (number): The number of milliseconds to wait for a response before timing out.
- resolveWithFullResponse (boolean): If true, the full response object is returned, otherwise only the response body is returned.
- simple (boolean): If true, only resolves the promise if the status code is 2xx otherwise throws an error.
- authorization (object): An object containing authorization information. Supports basic and bearer tokens.
- redirect_max (number): The maximum number of redirects to follow (default: 5).
- agent (object): An object containing custom HTTP/HTTPS agents.#### Example with Options
`js
const Fasquest = require('fasquest');var options = {
uri: 'http://127.0.0.1/',
method: 'POST',
qs: { key1: 'value1', key2: 'value2' },
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ key: 'value' }),
json: true,
form: { key: 'value' },
timeout: 5000,
resolveWithFullResponse: true,
simple: false,
authorization: { bearer: 'token' },
redirect_max: 10,
agent: { http: new http.Agent(), https: new https.Agent() }
}
Fasquest.request(options).then(res=>{
console.log('Response:', res)
}).catch(err=>{
console.error('Error:', err)
})
`$3
- FR_Simple: Thrown when the simple option is true and the response status code is not 2xx.
- FR_Request_: Thrown when there is an error with the request. will be replaced with the specific error name.
- FR_Request_Timeout: Thrown when the request times out.Changelog
$3
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
#### v3.1.5
63b8da5#### v3.1.5
> 20 November 2024
1644210
- Added back docs 78186ad
- Updated rollup which fixed the mjs version c49a66b#### v3.1.2
> 18 April 2022
5c6a245#### v3.1.1
> 8 February 2021
- Fixed bug with urls with
: in their path f123cfa#### v3.1.0
> 8 February 2021
- Default to text/plain if no content type is provided with body
dad6486#### v3.0.2
> 5 February 2021
a4a0518#### v3.0.1
> 20 October 2020
- Fixed issue with timeouts, removed default timeout logic if no timeout is set in options
5113537$3
> 22 September 2020
0e90d84#### v2.4.0
> 14 September 2020
25a8521#### v2.3.0
> 11 September 2020
433d5b3#### v2.2.0
> 11 September 2020
e5e037f
- Added timeout functionality and fixed error message names. 9b7e593#### v2.1.2
> 1 September 2020
- Added
npm publish at the end of postversion 7266053#### v2.1.1
> 1 September 2020
1188bb9#### v2.1.0
> 1 September 2020
72b9afc
- Squashed bugs 5b9ddbe#### v2.0.2
> 8 July 2020
638ace1#### v2.0.1
> 8 July 2020
15ededc$3
> 8 July 2020
c54e7cc#### v1.2.3
> 23 October 2019
#1
- 1.2.3 json empty body fix b6f1f07#### v1.2.2
> 12 September 2019
fb48137#### v1.2.1
> 12 September 2019
00f6b9d#### v1.2.0
> 11 September 2019
faec2e7
- added basic follow redirect a08b8ce
- Renamed to Fasquest db1fbc5
- Update README.md 59c1e8b
- Init commit c4511ab
- Update README.md 2353cdc
- Initial commit 39a43e3`