fp

fetchival-pluggable

Easy window.fetch requests. `yarn add fetchival-pluggable`

Showing:

Popularity

Downloads/wk

1

GitHub Stars

0

Maintenance

Last Commit

4yrs ago

Contributors

8

Package

Dependencies

0

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

fetchival.js Travis

Note: This is fork of typicode/fetchival with pluggable registry of response handler functions and data encoding functions, as well as a few bugfixes. yarn add fetchival-pluggable

Makes writing JSON requests with fetch easier

Fetchival is a tiny (0.7KB min/gz) fetch wrapper that can be used in the browser (IE9+) and Node.

Before

// POST /users
fetch('/users', {
  method: 'post',
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    name: 'Typicode',
    login: 'typicode',
  })
})
.then(function(response) {
  if (response.status >= 200 && response.status < 300) {
    return response.json()
  }
  throw new Error(response.statusText)
})
.then(function(json) {
  // ...
})

After

// POST /users
fetchival('/users').post({
  name: 'Typicode',
  login: 'typicode'
})
.then(function(json) {
  // ...
})

.get(), .put(), .patch() and .delete() methods are also available.

Installation

Fetchival is available on Bower and npm

Browser

bower install es6-promise fetch # polyfills
bower install fetchival
npm install es6-promise whatwg-fetch --save # polyfills
npm install fetchival --save # Browserify

Node

npm install node-fetch fetchival --save

Usage examples

var posts = fetchival('/posts')

//posts
posts.get()
posts.post({ title: 'Fetchival' })

//posts?category=javascript
posts.get({ category: 'javascript' })

//posts/1
posts(1).get()
posts(1).put({ title: 'Fetchival is simple' })
posts(1).patch({ title: 'Fetchival is simple' })
posts(1).delete()

var comments = posts('1/comments')

//posts/1/comments
comments.get()

//posts/1/comments/1
comments(1).get()

You can also pass fetch options to fetchival()

var posts = fetchival('/posts', fetchOptions)
var comments = posts('1/comments') // Will inherit fetchOptions

To catch errors

fetchival('/posts')
  .get()
  .catch(function(err) {
    console.log(err)
  })

To enable CORS

var request = fetchival('/', { mode: 'cors' })
var posts = request('posts')

To fetch plain text (for example, HTML views)

var request = fetchival('/', { responseAs: 'text' })
var posts = request('posts')

responseAs can be response, text or json (default)

To use fetchival in Node, you need to install node-fetch and configure fetchival to use it

var fetchival = require('fetchival')
fetchival.fetch = require('node-fetch')

Browser Support

ChromeFirefoxIEOperaSafari
Latest ✔Latest ✔9+ ✔Latest ✔6.1+ ✔

License

MIT - Typicode

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial