Skip to content
A extremely simple fetch extension inspired by sindresorhus/ky.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples/ghavatar
test
.editorconfig
.gitignore
.travis.yml
LICENSE
README.md
node.d.ts
node.js
package.json
xfetch.base.d.ts
xfetch.d.ts
xfetch.js
xfetch.min.js

README.md

xfetch-js

A extremely simple fetch extension for modern browsers inspired by sindresorhus/ky.

Which aims to be as small as possible and easy to use.

Build Status npm Type definition

Examaple

// get with query string
xf('https://postman-echo.com/get/', { qs: { foo: 'bar' } })
  .json()
  .then(console.log)

// post form
xf.post('https://postman-echo.com/post', { form: { foo: 'bar' } })
  .json()
  .then(console.log)

// post json with transforms
xf.post('https://postman-echo.com/post', { json: { foo: 'bar' } })
  .json(r => r.data)
  .then(console.log)

// extend, default baseURI in browser is document.baseURI
const xf2 = xf.extend({
  baseURI: 'https://postman-echo.com/'
})
xf2.get('/get').then(console.log)

// HTTPError
xf.get('https://postman-echo.com/404').catch(e => {
  assert(e instanceof xf.HTTPError)
  console.log(e.response)
})

With node

const xf = require('xfetch-js')
// This one will pollute global.URL and global.URLSearchParams, then return a xfetch client with node-fetch
// If you want a pure xfetch instance, use require('xfetch-js/xfetch')

xf('https://postman-echo.com/get/', { qs: { foo: 'bar' } })
  .json()
  .then(console.log)

Main differences bewteen fetch and xfetch-js

  • credentials is set to same-origin by default.
  • Throws error when response.ok is not true
  • Some useful methods to call, such as get,post and so on...
  • Support some simple serialization, including json,urlencoded and querystring
  • Support post transformation like .json(r => r.body)
  • Create another instance with default options xf.extend({})
  • fetch(Request) are not supported

API

See xfetch.base.d.ts.

License

FOSSA Status

You can’t perform that action at this time.