fetchival-express
v0.3.5
Published
Makes JSON requests with fetch easier
Downloads
11
Readme
fetchival.js 
Fork! Just added "response" to opts.responseAs property to allow access to response headers
Makes writing JSON requests with fetch easier
Fetchival is a tiny (0.5kb 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 fetchivalnpm install es6-promise whatwg-fetch --save # polyfills
npm install fetchival --save # BrowserifyNode
npm install node-fetch fetchival --saveUsage 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 fetchOptionsTo 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 must be either text or json (the 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
|
|
|
|
--- | --- | --- | --- | --- |
Latest ✔ | Latest ✔ | 9+ ✔ | Latest ✔ | 6.1+ ✔ |
License
MIT - Typicode
