Skip to content

Asarua/rkst

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rkst

一个基于ts的http请求库

功能

  • 提供了完善的ts类型支持,支持传入返回类型
  • 使用Promise
  • 支持两种自定义beforeafter拦截
  • 支持预配置的高级模式
  • 支持开箱即用的简单模式

下载

使用npm

npm install rkst

使用yarn

yarn add rkst

例子

使用configureRkst配置拦截器

import { configureRkst, ConfigureRkst } from 'rkst'

const before: ConfigureRkst['before'] = options => {
  console.log(options, 'before')
  return options
}

const after: ConfigureRkst['after'] = options => {
  console.log(options, 'after')
  return options
}

const rkst = configureRkst({
  before,
  after
})

export default {
  get(url) {
    return rkst({
      url,
      methods: 'get'
    })
  }
}

使用rkst直接请求

import rkst from 'rkst'

export default {
  get(url) {
    return rkst({
      url,
      methods: 'get'
    }, before, after)
  }
}

使用rkst.getrkst.postrkst.putrkst.delete直接请求

import rkst from 'rkst'

rkst.get<{ a: 1 }>('baidu.com')
  .then(data => {
    // data的type === { a: 1 }
  })

通过泛型传递返回参数

rkst<{ a: 1 }>({
  url,
  methods: 'get'
})
  .then(data => {
    // data的type === { a: 1 }
  })

通过封装泛型统一处理类型(rkst的返回类型会自动匹配get的返回类型,因此不用传参也可以完美的类型推倒)

interface API {
  get: {
    'https://api.apiopen.top/searchAuthors?name=李白': {
      name: 123
    }
  }
}

export const get = <URL extends keyof API['get']>(url: URL): Promise<API['get'][URL]> => {
  return rkst({
    url,
    methods: 'get'
  })
}

License

MIT

About

一个基于ts的http请求库

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published