Nuptial Predicament Mediation
    Have ideas to improve npm?Join in the discussion! »

    @applitools/http-commons

    2.4.3 • Public • Published

    http-commons

    Library that has http common functionality, all around http-client currently.

    Installing

    npm install @applitools/http-commons

    Using the package

    Let's see an example with fetchAsJson

    const {fetchAsJson} = require('@applitools/http-commons')
     
    await fetchAsJson('https://swapi.co/api/people/1/') // ===> {name: "Luke Skywalker", ...}

    API

    All these functions with throw an exception if the status code is not 2xx. The excption will have the following properties:

    • code: it will be 'ERR_X_STATUS_CODE_NOT_OK'
    • status: the HTTP status code
    • statusText: the HTTP status text
    • headers: an object with the response headers

    fetchAsBuffer(url, [fetchOptions], [options])

    async fetches URL and returns a Buffer response.

    url

    The URL to fetch.

    fetchOptions

    The fetch options used by the node-fetch package.

    options

    The following options are available:

    alternativeFetch

    (For testing purposes) A function that will be used as an alternative to node-fetch-s fetch function.

    returns

    An object with the response body as JSON parsed.

    Example

    await fetchAsJson('https://swapi.co/api/people/1/') // ===> {name: "Luke Skywalker", ...}

    fetchAsText(url, [fetchOptions], [options])

    async fetches URL and returns the response as a string.

    url

    The URL to fetch.

    fetchOptions

    The fetch options used by the node-fetch package.

    options

    The following options are available:

    alternativeFetch

    (For testing purposes) A function that will be used as an alternative to node-fetch-s fetch function.

    returns

    A string with the response body.

    Example

    await fetchAsText('https://www.wikipedia.org')// ===> "<!DOCTYPE html><html ..."

    fetchAsTextWithJsonBody(url, json, [fetchOptions], [options])

    async posts URL with a JSON body and returns the response as a string.

    url

    The URL to fetch.

    fetchOptions

    The fetch options used by the node-fetch package. Note that the default options are {method: 'POST', body: '_the_json_'}, with the correct content-type header, but you can override this using fetchOptions

    options

    The following options are available:

    alternativeFetch

    (For testing purposes) A function that will be used as an alternative to node-fetch-s fetch function.

    returns

    A string with the response body.

    Example

    await fetchAsTextWithJsonBody('https://httpbin.org/anything', {x: 4})// ===> "{..{"x": 4}..}"

    fetchAsJsonWithJsonBody(url, json, [fetchOptions], [options])

    async posts URL with a JSON body and returns the response as a string.

    url

    The URL to fetch.

    fetchOptions

    The fetch options used by the node-fetch package. Note that the default options are {method: 'POST', body: '_the_json_'}, with the correct content-type header, but you can override this using fetchOptions

    options

    The following options are available:

    alternativeFetch

    (For testing purposes) A function that will be used as an alternative to node-fetch-s fetch function.

    returns

    A "JSON" object with the parsed body

    Example

    await fetchAsTextWithJsonBody('https://httpbin.org/anything', {x: 4}, {method: 'PUT'})// ===> {..{"x": 4}..}

    fetchAsBufferWithJsonBody(url, json, [fetchOptions], [options])

    async posts URL with a JSON body and returns the response as a string.

    url

    The URL to fetch.

    fetchOptions

    The fetch options used by the node-fetch package. Note that the default options are {method: 'POST', body: '_the_json_'}, with the correct content-type header, but you can override this using fetchOptions

    options

    The following options are available:

    alternativeFetch

    (For testing purposes) A function that will be used as an alternative to node-fetch-s fetch function.

    returns

    A buffer with the response body.

    Example

    await fetchAsBufferWithJsonBody('https://httpbin.org/anything', {x: 4})// ===> Buffer (....)

    retryFetch(func, options)

    Retries code and deals correctly with retrying HTTP and connection errors.

    func

    An async func that calls one of the fetch* functions above or the fetch in node-fetch directly.

    options

    retries

    Number of retries before failing.

    sleepTime

    The time (in ms) for sleeping between retries

    backoff

    Exponential backoff factor for sleepTime

    idempotent

    Some errors, like 5xx http status error should not retry if the fetch operation is idempotent. So this flag says whether the operation is idempotent to know whether to retry.

    returns

    Whatever func returns

    Example

    const json = await retry(() => fetchAsJson('http://httpbin.org/anything'), {idempotent: true})

    Install

    npm i @applitools/http-commons

    DownloadsWeekly Downloads

    43,461

    Version

    2.4.3

    License

    Apache-2.0

    Unpacked Size

    28.9 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar