mirror of
https://gitee.com/mirrors/AllinSSL.git
synced 2026-03-14 10:22:02 +08:00
37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
import { AxiosRequestConfig, AxiosResponse, AxiosError } from 'axios'
|
|
|
|
type RequestMiddlewareProps = (fn: (config: AxiosRequestConfig) => AxiosRequestConfig) => {
|
|
request: (config: AxiosRequestConfig) => AxiosRequestConfig
|
|
}
|
|
|
|
type ResponseMiddlewareProps = (fn: (response: AxiosResponse) => AxiosResponse) => {
|
|
response: (response: AxiosResponse) => AxiosResponse
|
|
}
|
|
|
|
/**
|
|
* 构建Request 请求中间件
|
|
* @param fn 请求中间件函数
|
|
* @returns 请求中间件
|
|
*/
|
|
export const requestMiddleware: RequestMiddlewareProps = (fn: (config: AxiosRequestConfig) => AxiosRequestConfig) => ({
|
|
request: fn,
|
|
})
|
|
|
|
/**
|
|
* 构建Response 响应中间件
|
|
* @param fn 响应中间件函数
|
|
* @returns 响应中间件
|
|
*/
|
|
export const responseMiddleware: ResponseMiddlewareProps = (fn: (response: AxiosResponse) => AxiosResponse) => ({
|
|
response: fn,
|
|
})
|
|
|
|
/**
|
|
* 构建Error 错误中间件
|
|
* @param fn 错误中间件函数
|
|
* @returns 错误中间件
|
|
*/
|
|
export const errorMiddleware = (fn: (error: AxiosError) => AxiosError) => ({
|
|
error: fn,
|
|
})
|