0.0.1 • Published 4 years ago

texios v0.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

Texios codecov

基于 typescript 实现的 axios

基本使用

安装

$ npm install texios

// or

$ yarn add texios

Example

建议使用 ES 模块

import texios from 'texios'

texios({
  method: 'get',
  url: '/simple/get',
  params: {
    a: 1,
    b: 2
  }
})

支持使用 api 的方式

texios.request({
  method: 'get',
  url: '/extend/get'
})

texios.get('/more/get')

texios.post('/extend/post', { msg: 'hello post' })

相关 API

支持拦截器

// 请求拦截
texios.interceptors.request.use(config => {
  config.headers.test += '1'
  return config
})

texios.interceptors.request.use(config => {
  config.headers.test += '2'
  return config
})
// 响应拦截
texios.interceptors.request.use(config => {
  config.headers.test += '3'
  return config
})

texios.interceptors.response.use(res => {
  res.data += '1'
  return res
})

支持配置化

import texios, { TexiosTransformer } from 'texios'
import qs from 'qs'

// 对请求、响应做一个处理
const request = texios.create({
  transformRequest: [
    function(data) {
      return qs.stringify(data)
    },
    ...(texios.defaults.transformRequest as TexiosTransformer[])
  ],
  transformResponse: [
    ...(texios.defaults.transformResponse as TexiosTransformer[]),
    function(data) {
      if (typeof data === 'object') {
        data.b = 2
      }
      return data
    }
  ],
  headers: {
    demo: 'test-xxx'
  }
})

request({
  url: '/config/post',
  method: 'post',
  data: {
    a: 1
  }
})
  .then(res => {
    console.log(res.data)
  })
  .catch(err => {
    console.log(err)
  })