Thin wrapper over window.fetch. Sister library of @asd14/fetch-node.
npm i @asd14/fetch-browserimport { setup } from "@asd14/fetch-browser"
setup({
  // Throws if not set and using relative paths
  baseURL: "http://localhost",
})import { setup } from "@asd14/fetch-browser"
setup({
  // Persistent headers
  headers: {
    // Library defaults
    "accept": "application/json",
    "content-type": "application/json",
    // Set JWT for authorized requests
    authorization: "signed-payload-with-base64-over",
  },
})There is no built-in way to handle query params but you can set a custom transform function.
import { setup } from "@asd14/fetch-browser"
import { stringify } from "qs"
setup({
  // Throws if query params passed and no stringify function defined
  stringifyQueryParams: source =>
    stringify(source, {
      allowDots: true,
      encode: false,
      arrayFormat: "brackets",
      strictNullHandling: true,
    })
})import { GET } from "@asd14/fetch-browser"
const myIP = await GET("https://api.ipify.org", {
  query: {
    format: "json"
  }
})
// => {"ip":"213.127.80.141"}See the releases section for details.