Skip to content

Repository files navigation

intro

a lightweight fetch lib with middleware inspired by koa

quick start

yarn add @jarzzzi/rufetch

example

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})}

middleware

  • 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()})

api

  • 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

About

a lightweight fetch lib with middleware inpired by koa

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages