Skip to content

heartsradiant/fetch-browser

 
 

Repository files navigation

fetch-browser

Thin wrapper over window.fetch. Sister library of @asd14/fetch-node.

Install

npm i @asd14/fetch-browser

Initialize

import { set } from "@asd14/fetch-browser"

set({
  // Throws if not set and using relative paths
  baseURL: "http://localhost",
})

Default headers

import { set } from "@asd14/fetch-browser"

set({
  // Persistent headers
  headers: {
    // Library defaults
    "accept": "application/json",
    "content-type": "application/json",

    // Set JWT for authorized requests
    authorization: "signed-payload-with-base64-over",
  },
})

Query string parameters

There is no built-in way to handle query params but you can set a custom transform function.

import { set } from "@asd14/fetch-browser"
import { stringify } from "qs"

set({
  // Throws if query params passed and no stringify function defined
  queryStringifyFn: source =>
    stringify(source, {
      allowDots: true,
      encode: false,
      arrayFormat: "brackets",
      strictNullHandling: true,
    })
})

GET

import { GET } from "@asd14/fetch-browser"

const myIP = await GET("https://api.ipify.org", {
  query: {
    format: "json"
  }
})
// => {"ip":"213.127.80.141"}

PATCH

POST

DELETE

MULTIPART

Changelog

See the releases section for details.

About

Thin wrapper over `window.fetch`

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 97.4%
  • HTML 2.6%