GithubHelp home page GithubHelp logo

hyperfetcher's Introduction

Hyperfetcher

A fetch wrapper with TokenGenerator support

Why?

Why not.

How?

npm i @eatsjobs/hyperfetcher --save

Peer dependencies

In your consumer package you have to provide a

  • fetch polyfill (if needed by your target environment)
  • URLSearchParams polyfill (if needed by your target environment)
  • Promise A+ polyfill compliant (if needed by your target environment)

Usage

import Fetcher, { TokenGenerator } from '@eatjobs/hyperfetcher';

const fetcher = new Fetcher({
    baseURL: 'http://api.com/api/v1',
    options: {
        headers: {
                'Content-Type': 'application/x-www-form-urlencoded',
            }
        }
    }, new TokenGenerator({
        url: 'http://api.com/oauth/token',
        clientId: 123,
        clientSecret: 'secret123456789' // put it in your env variable if you can
    })
 )

 fetcher.get('/v01/users').then(res => res.json());
 fetcher.post('/v01/user', {}, { credentials: 'include', body: JSON.stringify({foo: 'bar'}) });
 
 // Setup token generator in a later moment:
 const generator = new TokenGenerator({
    url: 'http://api.com/oauth/token',
    clientId: 123,
    clientSecret: 'secret123456789'
 });
 fetcher.setTokenGenerator(generator);
 // Now, before every fetch requests, the library will check if the current Bearer token (if present) is valid and will try to get a new one if necessary.
 // The new token will be used as Authentication: Bearer <Token> header

Installation

NPM

npm install --save @eatsjobs/hyperfetcher

hyperfetcher's People

Contributors

eatsjobs avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.