a lightweight fetch lib with middleware inspired by koa
yarn add @jarzzzi/rufetch
consthttp=newRufetch({baseURL: 'https://github.com/api',})constgetUser=(name)=>{returnhttp.get(`/user/${name}`)}constgetReps=(name,page)=>{returnhttp.get(`/user/${name}`,{params: {page}})}constcreateReps=(name,data)=>{returnhttp.post(`/user/${name}`,{data})}built in middleware
- cache
- fetch
error middleware
http.use(async(ctx: any,next: any)=>{awaitnext()const{error}=ctx.resif(error?.status>=400&&error?.status<500){console.error('client error')}if(error?.status>=500){console.error('server error')}if(error==='fetch timeout'){console.error('fetch timeout')}})- token middleware
http.use(async(ctx: any,next: any)=>{consttoken=awaitgetToken()ctx.req.requestInit.setHeaders(token,token)awaitnext()})- options
- baseURL
- timeout: default 15000
- params: url search params
- data: body alias
- responseType: default json, arrayBuffer, blob, json, text, formData, stream...
- cacheOptions
- cache: boolean
- expiredAge: default 5000
- body
- cache
- credentials
- headers
- integrity
- keepalive
- method
- mode
- redirect
- referrer
- referrerPolicy
- signal
- window
- new (options)
- instance.get
- instance.post
- instance.put
- instance.delete
- instance.head
- instance.use
- add middleware
- ctx
- req
- request
- res
- response