we-req
Version:
weReq是基于微信小程序的 wx.request的高级封装,提供全局和外部拦截器的管理,支持自动登录等功能,旨在简化微信小程序网络请求的处理流程,提升开发者的使用体验。
49 lines (42 loc) • 1.3 kB
text/typescript
import InterceptorManager from './core/InterceptorManager'
export enum reTokenConfigMethod {
GET = 'GET',
POST = 'POST'
}
interface ReTokenConfig {
url: string
method: reTokenConfigMethod
codeKey: string
data: Record<string, any>
headers: Record<string, any>
success: (res: any) => void
fail: (err: any) => void
}
export interface Interceptors {
requestSuccessFn?: (
config: RequestConfig
) => Promise<RequestConfig> | RequestConfig
requestFailFn?: (error: any) => Promise<any> | any
responseSuccessFn?: (response: Response) => Promise<any> | any
responseFailFn?: (error: any) => Promise<any> | any
}
export interface autoLoginConfig {
reTokenConfig: ReTokenConfig
isTokenExpiredFn: (response: Response) => boolean // 检查 Token 是否过期的方法
reLoginLimit?: number
}
export interface InterceptorManagers {
request: InterceptorManager<any>
response: InterceptorManager<any>
}
export interface WeAppRequestConfig {
[key: string]: any
baseURL?: string
loading?: boolean
interceptors?: Interceptors
reLoginConfig?: autoLoginConfig
}
export type RequestConfig = WechatMiniprogram.RequestOption & WeAppRequestConfig
export type Response = WechatMiniprogram.RequestSuccessCallbackResult<
string | Record<string, any> | ArrayBuffer
>