Thin wrapper over window.fetch
. Sister library of @asd14/fetch-node
.
npm i @asd14/fetch-browser
import { set } from "@asd14/fetch-browser"
set({
// Throws if not set and using relative paths
baseURL: "http://localhost",
})
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",
},
})
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,
})
})
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.