Skip to content
/ x-fetch Public
generated from un-ts/lib-boilerplate

A simple but elegant `fetch` API wrapper, use `fetch` like a charm

License

Notifications You must be signed in to change notification settings

un-ts/x-fetch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

x-fetch

GitHub Actions Workflow Status Codecov type-coverage CodeRabbit Pull Request Reviews npm GitHub Release

Conventional Commits Renovate enabled JavaScript Style Guide Code Style: Prettier changesets

A simple but elegant fetch API wrapper with less than 850B minified and brotlied, 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

Sponsors

1stG RxTS UnTS
1stG Open Collective sponsors RxTS Open Collective sponsors UnTS Open Collective sponsors

Backers

1stG RxTS UnTS
1stG Open Collective backers RxTS Open Collective backers UnTS Open Collective backers

Changelog

Detailed changes for each release are documented in CHANGELOG.md.

License

MIT © JounQin@1stG.me