Files
AllinSSL/frontend/packages/vue/hooks/src/axios/model/other.ts
chudong f1a75afaba 【同步】前端项目源码
【修复】工作流兼容问题
2025-05-10 11:53:11 +08:00

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