Nuclear Pumpkin Mocha

    @debitoor/fetcher
    TypeScript icon, indicating that this package has built-in type declarations

    3.3.3 • Public • Published

    CircleCI

    Fetcher

    Easily make make HTTP requests using node-fetch and have response status check, json– or text parsing and error handling.

    It will throw an error if response.status is not equal to 200 or less than 300 (response.status >= 200 && response.status < 300).

    If response is of "content-type": "application/json" it will return the response of await response.json();.

    If response is of "content-type": "text/ it will return the response of await response.text().

    If response is not of either type, it will just return the response as is.

    The Fetcher takes an optional baseUrl and an optional options.

    fetcher.fetch function can be called with an object of options or direct function arguments. See examples.

    Usage

    const Fetcher = require('@debitoor/fetcher');
    
    // create new instance
    const fetcher = new Fetcher(baseUrl, options);
    const response = await fetcher.fetch({ method:'GET' path: '/foo/bar' });
    // OR
    const response = await fetcher.fetch(method, path, query, headers, body, redirect);
    
    // extend class
    class Example extends Fetcher {
    	constructor(baseUrl, options) {
    		super(baseUrl, options);
    	}
    
    	async requestMethod() {
    		return this.fetch({ method: 'GET', path: '/foo/bar' });
    	}
    }

    Options

    You can provide second optional argument options. Valid options:

    • headers - an object of headers.

    baseUrl and path

    It is possible to supply a baseUrl when initialising fetcher while also supplying a path when calling the fetch function.

    When both are applied, we are merging them. The path of the merged url is being resolved using url.resolve, thus it is important to note how this works.

    E.g. if baseUrl includes any path that should be kept in the merged url, it should end with a / while the path should not begin with one (which it usually should). See example below.

    const url = require('url');
    
    const baseurl = 'https://circleci.com/api/v1.1/';
    const requesturl = 'projects?circle-token=token';
    
    console.log(url.resolve('https://circleci.com/api/v1.1/', 'projects?circle-token=token'));
    // https://circleci.com/api/v1.1/projects?circle-token=token
    console.log(url.resolve('https://circleci.com/api/v1.1', '/projects?circle-token=token'));
    // https://circleci.com/projects?circle-token=token

    Keywords

    none

    Install

    npm i @debitoor/fetcher

    DownloadsWeekly Downloads

    71

    Version

    3.3.3

    License

    ISC

    Unpacked Size

    16.9 kB

    Total Files

    16

    Last publish

    Collaborators

    • talar.boyadjian
    • sumup-yonatankarp
    • dzmitry.h.sumup
    • mmahrous
    • jmrigali
    • maciej-kusnierz
    • mariusrosand
    • skryvytskyi_sumup
    • oalpatov
    • bgeraymovich
    • bifrost
    • debitoor-bot
    • mamant
    • hilleer
    • s0ph1e
    • sumup.vascofg
    • jonathanmh
    • igor_torba
    • plafytskyi
    • igor.g
    • ituraj
    • eugene-ltv-debitoor
    • lshilo
    • hamoudaarfaoui
    • ziegelke
    • soulmonk
    • ketevanl
    • andriyonyshchenko
    • belrestro
    • robinmetral
    • connor_baer
    • balexandre
    • belem-acosta
    • mickael-h
    • annewarnk1
    • felixjung
    • oarostovtseva
    • amelako
    • mcntsh
    • msafwat-sumup
    • ketansumup
    • zetxek