@m59/fetch

0.0.0 • Public • Published

@m59/fetch

Fetch API with conveniences I like.

This is shimmed for server side usage with node-fetch. The server code is ignored when bundling for the browser.

install

$ npm install @m59/fetch

example

const fetch = require('@m59/fetch')

fetch.json({
  url: URL + '/posts',
  query: { userId: 1 }
}).then(({response, body}) => body[0].id) // 1

api

fetch([url], options)

The first argument can be a url or options object. If you pass only an options object, it should have a url property. Put your normal fetch options in options.

options.query

options.query is an object that will be used to create a query string that will set or overwrite the query string in the given url

{
  url: '/foo'
  query: { bar: 123 }
} // => /foo?bar=123

options.body

If you set options.body to an instance of FormData, the form data content type header will be set automatically. If you set options.body to a regular object, it will be JSON stringified and the json content type header will be set automatically.

helpers

If you want the response body in a certain format, save some code by using the corresponding helper. json() and text() will also set the appropriate accept header to ensure the server knows what format you want. The result will be in the format { response, body }.

fetch.arrayBuffer()
fetch.blob()
fetch.json()
fetch.text()
fetch.formData()

Dependents (0)

Package Sidebar

Install

npm i @m59/fetch

Weekly Downloads

2

Version

0.0.0

License

CC0-1.0

Last publish

Collaborators

  • m59