Skip to content
/ aqt Public

Advanced request for Node.js which returns body, headers and status after gzip.

License

Notifications You must be signed in to change notification settings

rqt/aqt

Repository files navigation

@rqt/aqt

npm version

aqt is a network request package for Node.JS that returns the body (parsed if returned as JSON), headers and status after gzip decompression when necessary.

rqt:~$ \
yarn add @rqt/aqt
npm install @rqt/aqt

Table Of Contents

API

The package exports the main default asynchronous function to make requests.

import aqt from '@rqt/aqt'

async aqt(
  address: string,
  options=: !AqtOptions,
): !AqtReturn

Request a web page and return information including headers, statusCode, statusMessage along with the body (which is also parsed if JSON received).

  • address* string: The URL to request data from.
  • options !AqtOptions (optional): The options for the request.

Makes a request to the URL, either with or without options.

AqtOptions: Configuration for requests.

Name Type & Description Default
data !Object -
Optional data to send to the server with the request.
type string json
How to send data: json to serialise JSON data and add Content-Type: application/json header, and form for url-encoded transmission with Content-Type: application/x-www-form-urlencoded. Multipart/form-data must be implemented manually.
headers Node.JS Docs!http.OutgoingHttpHeaders -
Headers to use for the request. By default, a single User-Agent header with Mozilla/5.0 (Node.JS) aqt/{version} value is set.
compress boolean true
Add the Accept-Encoding: gzip, deflate header to indicate to the server that it can send a compressed response.
timeout number -
The timeout after which the request should fail.
method string -
What HTTP method to use in making of the request. When no method is given and data is present, defaults to POST.
binary boolean false
Whether to return a buffer instead of a string.
justHeaders boolean false
Whether to stop the request after response headers were received, without waiting for the data.

In the example below, a function is created to query data from a server.

SourceOutput
import aqt from '@rqt/aqt'

const Request = async (url) => {
  const res = await aqt(url)
  const resp = JSON.stringify(res, null, 2)
  console.log(resp)
}
{
  "body": "Hello World",
  "headers": {
    "content-type": "text/plain",
    "date": "Tue, 07 Jan 2020 22:25:31 GMT",
    "connection": "close",
    "transfer-encoding": "chunked"
  },
  "statusCode": 200,
  "statusMessage": "OK"
}

AqtReturn Type

The result of the aqt function will have the following structure:

Property Type Description Example
body string|object|Buffer The return from the server. In case json content-type was set by the server, the response will be parsed into an object. If binary option was used for the request, a Buffer will be returned. Otherwise, a string response is returned.
headers object Incoming headers returned by the server.
headers example
{
  "server": "GitHub.com",
  "date": "Wed, 18 Jul 2018 01:32:47 GMT",
  "content-type": "application/json; charset=utf-8",
  "content-length": "2",
  "connection": "close",
  "status": "200 OK",
  "x-ratelimit-limit": "60",
  "x-ratelimit-remaining": "59",
  "x-ratelimit-reset": "1531881167",
  "cache-control": "public, max-age=60, s-maxage=60",
  "vary": "Accept",
  "etag": "\"d751713988987e9331980363e24189ce\"",
  "x-github-media-type": "github.v3; format=json",
  "access-control-allow-origin": "*",
  "x-frame-options": "deny",
  "x-content-type-options": "nosniff",
  "x-xss-protection": "1; mode=block",
  "content-security-policy": "default-src 'none'",
  "x-runtime-rack": "0.018822",
  "x-github-request-id": "F187:785E:65A1E8A:C2A36B5:5B4E98BF"
}
statusCode number The status code returned by the server. 200
statusMessage string The status message set by the server. OK

Copyright

Art Deco © Art Deco for Rqt 2020 Tech Nation Visa Tech Nation Visa Sucks

About

Advanced request for Node.js which returns body, headers and status after gzip.

Resources

License

Stars

Watchers

Forks

Packages

No packages published