JSPM

fetch-nice

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 6
  • Score
    100M100P100Q12194F
  • License MIT

A helpful fetch wrapper

Package Exports

  • fetch-nice

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (fetch-nice) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

fetch-nice

Travis npm npm David

A thin wrapper around fetch to take care of some common use cases in the browser.

NB This does not handle polyfilling fetch. If you are using this in a browser that does not implement HTML5 Fetch API then you will need to polyfill with something like whatwg-fetch or it will not work.

Installation

npm i fetch-nice

Usage

The examples below are written using ES7 async/await for clarity. Of course you can still use fetch-nice without async/await since it returns a promise as per HTML5 fetch.

fetchNice assumes that your request is for JSON and sets headers accordingly. It also defaults to using fetch's credentials: 'include' setting so that any cookies are sent in order to make authenticated API requests.

The response object is JSON parsed automatically. If the response was a 204 (no content), fetch-nice returns undefined.

fetch-nice returns a rejected promise for error responses. If the error response contained a JSON body, this is added to the rejected Error. fetch-nice uses boom for it's errors.

import fetchNice from 'fetch-nice';

// make a GET request

const result = await fetchNice('http://myapi.com/user/me');


// make a POST request

const body = { name: 'Onion McOnionFace' };
const result = await fetchNice.post('http://myapi.com/users', { body });

// PUT and DELETE follow the same pattern.