x-fetch
v0.2.3
Published
A simple but elegant `fetch` API wrapper, use `fetch` like a charm
Downloads
56
Readme
x-fetch
A simple but elegant fetch
API wrapper, use fetch
like a charm
TOC
Usage
Install
# pnpm
pnpm add x-fetch
# yarn
yarn add x-fetch
# npm
npm i x-fetch
API
import { ApiMethod, createFetchApi, fetchApi, interceptors } from 'x-fetch'
// plain url, GET method
await fetchApi('url')
// with options, `method`, `body`, `query`, etc.
await fetchApi('url', {
method: ApiMethod.POST, // or 'POST'
// plain object or array, or BodyInit
body: {},
// URLSearchParametersOptions
query: {
key: 'value',
},
// json: boolean, // whether auto stringify body to json, default true for plain object or array, otherwise false
// type: 'arrayBuffer' | 'blob' | 'json' | 'text' | null, `null` means plain `Response`
})
const interceptor: ApiInterceptor = (req, next) => {
// do something with req
const res = await next(req)
// do something with res
return res
}
// add interceptor
interceptors.use(interceptor)
// remove interceptor
interceptors.eject(interceptor)
// create a new isolated `fetchApi` with its own `interceptors`
const { fetchApi, interceptors } = createFetchApi()
Sponsors
| 1stG | RxTS | UnTS | | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | | | | |
Backers
| 1stG | RxTS | UnTS | | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | | | | |
Changelog
Detailed changes for each release are documented in CHANGELOG.md.