1.0.4 • Published 7 years ago

fetch-fetchy v1.0.4

Weekly downloads
1
License
MIT
Repository
github
Last release
7 years ago

logo

A simplified fetch API

→ Methods for each HTTP verb means no building request objects

→ API-level error handling means no checking status codes

→ Built-in response parsing means no additional checks and method calls

→ Optional one-time configuration means easy integration for your API

Install

$ npm i --save fetch-fetchy

Basic Usage

import { get, post } from 'fetch-fetchy';

/**
 * Create a user
 */
post('/user', formData)
  .then(onSuccess)
  .catch(onError)

/**
 * Fetch a user
 */
get('/user/hs9hsbs7')
  .then(onSuccess)
  .catch(onError)

Configuration

The default configuration is as follows:

{
	json: true,
	url: window.location.origin,
	headers: { 'Content-Type': 'application/json' },
	mode: 'cors'
}

json

If set to true, request data will automatically be converted to JSON.

url

The url to be used for api requests. When a route begins with /, it is assumed that the request is being made to the application's API. This means that you can define /user as the route instead of https://myapplicationdomain/user. If you set url to https://someotherdomain and specify /user as the route, the request will be made to https://someotherdomain/user. When the route does not begin with /, the full route will be used.

headers

The headers for requests.

mode

The request mode.


You may override these options for all requests by calling configure(). The default options will be overridden using Object.assign(). If you wish to apply options for a single request, just pass those options into that request.

import { configure } from 'fetch-fetchy';
/**
 * Configure fetch-fetchy
 */
const options = {
  url: 'https://myapi.com',
  headers: { Authorization: `Bearer ${jwt}`},
}
configure(options);

API Methods

get(route: String, options: Object) => Promise

post(route: String, body: *, options: Object) => Promise

put(route: String, body: *, options: Object) => Promise

patch(route: String, body: *, options: Object) => Promise

del(route: String, options: Object) => Promise

configure(options: Object) => Object

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago