xfetch-js

> A extremely simple fetch extension for modern browsers inspired by [sindresorhus/ky](https://github.com/sindresorhus/ky). > > Which aims to be as small as possible and easy to use.

Usage no npm install needed!

<script type="module">
  import xfetchJs from 'https://cdn.skypack.dev/xfetch-js';
</script>

README

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