Extends the whatwg fetch
- fetch spec api,
makes it easier to use. Both node & browser supported.
- install
$ npm install fetch.io
- import
const Fetch = require('fetch.io')
// or ES6 style
import Fetch from 'fetch.io'
-
.config() - set options
-
.set() - set http header
-
.type() - set content type
-
.send() - send body data
-
.query() - set query string
-
.append() - append form data
-
.text() - convert response body to
string
-
.json(strict = true) - convert response body to
object
(strict JSON mode default)
- beforeRequest -
Function
, a pre-request hook function, returningfalse
will cancel the request - jsonHandler -
Function
, add a handler for.json()
, to check the response data - prefix -
String
, url prefix - Other whatwg-fetch options
const request = new Fetch({
prefix: 'http://example.com/api/v1'
})
- default options
{
prefix: '',
mode: 'cors',
cache: 'no-cache',
credentials: 'same-origin'
}
request
.get(path)
.config({
credentials: 'omit'
})
.query({
type: 1
})
.query({
name: 'hello'
})
.then(res => {
// fetch response
})
.catch(err => {
// ...
})
- get json body
request
.get(path)
.json()
.then(body => {
// response body
})
.catch(err => {
// ...
})
- get text body
request
.get(path)
.text()
.then(body => {
// response body
})
.catch(err => {
// ...
})
- send json
request
.post(path)
.send({
type: 1
})
.send({
name: 'hello'
})
.then(res => {
// fetch response
})
.catch(err => {
// ...
})
- send urlencoded
request
.post(path)
.send('type=1')
.send('name=hello')
.then(res => {
// fetch response
})
.catch(err => {
// ...
})
- send urlencoded
request
.post(path)
.type('form')
// equal to:
// .type('urlencoded')
// equal to:
// .set('content-type', 'application/x-www-form-urlencoded')
.send({
type: 1,
name: 'hello'
})
.then(res => {
// fetch response
})
.catch(err => {
// ...
})
- set header
request
.post(path)
.set({
'content-type': 'application/json'
})
.send({
name: 'hello'
})
.then(res => {
// fetch response
})
.catch(err => {
// ...
})
- send form (multipart) (upload file)
request
.post(path)
.append('filename', 'user.png')
.append('file': document.querySelector('input[type="file"]')files[0])
.then(res => {
// fetch response
})
.catch(err => {
// ...
})
MIT