@minilo/utils 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/config.d.ts +3 -3
- package/dist/config/config.js +20 -20
- package/dist/config/guider.d.ts +51 -67
- package/dist/config/guider.js +55 -52
- package/dist/config/index.d.ts +6 -6
- package/dist/config/index.js +6 -6
- package/dist/config/storageManager.d.ts +41 -41
- package/dist/config/storageManager.js +100 -92
- package/dist/config/types.d.ts +18 -18
- package/dist/config/types.js +2 -2
- package/dist/config/updateCssVariables.d.ts +11 -14
- package/dist/config/updateCssVariables.js +77 -79
- package/dist/constrant/index.d.ts +5 -5
- package/dist/constrant/index.js +11 -11
- package/dist/func/color.d.ts +5 -5
- package/dist/func/color.js +10 -10
- package/dist/func/common.d.ts +8 -15
- package/dist/func/common.js +58 -54
- package/dist/func/index.d.ts +4 -4
- package/dist/func/index.js +4 -4
- package/dist/func/merge.d.ts +2 -2
- package/dist/func/merge.js +2 -2
- package/dist/hooks/helper.d.ts +6 -0
- package/dist/hooks/helper.d.ts.map +1 -0
- package/dist/hooks/helper.js +45 -0
- package/dist/hooks/helper.js.map +1 -0
- package/dist/hooks/index.d.ts +4 -4
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +4 -4
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useChartResize.d.ts +20 -0
- package/dist/hooks/useChartResize.d.ts.map +1 -0
- package/dist/hooks/useChartResize.js +67 -0
- package/dist/hooks/useChartResize.js.map +1 -0
- package/dist/hooks/useCountDown.d.ts +9 -0
- package/dist/hooks/useCountDown.d.ts.map +1 -0
- package/dist/hooks/useCountDown.js +42 -0
- package/dist/hooks/useCountDown.js.map +1 -0
- package/dist/hooks/useFormAutoSave.d.ts +2 -0
- package/dist/hooks/useFormAutoSave.d.ts.map +1 -0
- package/dist/hooks/useFormAutoSave.js +73 -0
- package/dist/hooks/useFormAutoSave.js.map +1 -0
- package/dist/hooks/useRouteCache.d.ts +2 -0
- package/dist/hooks/useRouteCache.d.ts.map +1 -0
- package/dist/hooks/useRouteCache.js +92 -0
- package/dist/hooks/useRouteCache.js.map +1 -0
- package/dist/hooks/useScroll.d.ts +15 -0
- package/dist/hooks/useScroll.d.ts.map +1 -0
- package/dist/hooks/useScroll.js +71 -0
- package/dist/hooks/useScroll.js.map +1 -0
- package/dist/hooks/useUpload.d.ts +17 -0
- package/dist/hooks/useUpload.d.ts.map +1 -0
- package/dist/hooks/useUpload.js +87 -0
- package/dist/hooks/useUpload.js.map +1 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +6 -6
- package/dist/request/index.d.ts +34 -16
- package/dist/request/index.d.ts.map +1 -1
- package/dist/request/index.js +131 -132
- package/dist/request/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -3
- package/dist/hooks/useButtonPermission.d.ts +0 -9
- package/dist/hooks/useButtonPermission.d.ts.map +0 -1
- package/dist/hooks/useButtonPermission.js +0 -38
- package/dist/hooks/useButtonPermission.js.map +0 -1
- package/dist/hooks/useGuider.d.ts +0 -2
- package/dist/hooks/useGuider.d.ts.map +0 -1
- package/dist/hooks/useGuider.js +0 -5
- package/dist/hooks/useGuider.js.map +0 -1
- package/dist/hooks/useInitGlobalStyle.d.ts +0 -2
- package/dist/hooks/useInitGlobalStyle.d.ts.map +0 -1
- package/dist/hooks/useInitGlobalStyle.js +0 -80
- package/dist/hooks/useInitGlobalStyle.js.map +0 -1
package/dist/request/index.d.ts
CHANGED
|
@@ -1,42 +1,60 @@
|
|
|
1
|
-
import { type AxiosRequestConfig, type AxiosResponse, type CreateAxiosDefaults } from 'axios'
|
|
2
|
-
export * from 'axios'
|
|
1
|
+
import { type AxiosRequestConfig, type AxiosResponse, type CreateAxiosDefaults } from 'axios';
|
|
2
|
+
export * from 'axios';
|
|
3
3
|
/**
|
|
4
4
|
* 后端统一响应格式
|
|
5
5
|
* @template T - 响应体中 result 字段的类型
|
|
6
6
|
*/
|
|
7
7
|
export interface ApiResponse<T = any> {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
data: T;
|
|
9
|
+
code: number;
|
|
10
|
+
msg: string;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* 取消所有 pending 状态的请求
|
|
14
14
|
*/
|
|
15
|
-
export declare const cancelAllRequests: () => void
|
|
15
|
+
export declare const cancelAllRequests: () => void;
|
|
16
16
|
/**
|
|
17
17
|
* 根据URL取消相关请求
|
|
18
18
|
* @param {String} url 要取消请求的URL
|
|
19
19
|
*/
|
|
20
|
-
export declare const cancelRequestsByUrl: (url: string) => void
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
export declare const cancelRequestsByUrl: (url: string) => void;
|
|
21
|
+
/**
|
|
22
|
+
* 请求实例初始化配置选项
|
|
23
|
+
*/
|
|
24
|
+
export interface RequestInstanceOptions {
|
|
25
|
+
/** 请求拦截器额外处理逻辑 */
|
|
26
|
+
interceptorsRequestFn?: (config: AxiosRequestConfig) => void;
|
|
27
|
+
/** 响应拦截器额外处理逻辑 */
|
|
28
|
+
interceptorsResponseFn?: (response: AxiosResponse) => void;
|
|
29
|
+
/** 判断响应是否成功的逻辑,默认判断 code === 200 */
|
|
30
|
+
isSuccess?: (data: any) => boolean;
|
|
31
|
+
/** 从响应中提取数据的逻辑,默认返回 data.data */
|
|
32
|
+
getData?: (data: any) => any;
|
|
33
|
+
/** 从响应中提取错误消息的逻辑,默认返回 data.msg */
|
|
34
|
+
getMessage?: (data: any) => string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @description 初始化请求实例
|
|
38
|
+
* @author xieshuhong
|
|
39
|
+
* @param {CreateAxiosDefaults} [extendConfig={}] 扩展配置
|
|
40
|
+
* @param {RequestInstanceOptions} [options={}] 配置选项
|
|
41
|
+
* @return {*} 请求实例
|
|
42
|
+
*/
|
|
43
|
+
export declare const initRequestInstance: (extendConfig?: CreateAxiosDefaults, options?: RequestInstanceOptions) => import("axios").AxiosInstance;
|
|
26
44
|
/**
|
|
27
45
|
* 生成请求唯一标识
|
|
28
46
|
* @param {Object} config 请求配置
|
|
29
47
|
* @returns {String} 唯一标识
|
|
30
48
|
*/
|
|
31
|
-
export declare const generateRequestKey: (config: AxiosRequestConfig) => string
|
|
49
|
+
export declare const generateRequestKey: (config: AxiosRequestConfig) => string;
|
|
32
50
|
/**
|
|
33
51
|
* 添加请求到pending列表
|
|
34
52
|
* @param {Object} config 请求配置
|
|
35
53
|
*/
|
|
36
|
-
export declare const addPendingRequest: (config: AxiosRequestConfig) => void
|
|
54
|
+
export declare const addPendingRequest: (config: AxiosRequestConfig) => void;
|
|
37
55
|
/**
|
|
38
56
|
* 从pending列表移除请求
|
|
39
57
|
* @param {Object} config 请求配置
|
|
40
58
|
*/
|
|
41
|
-
export declare const removePendingRequest: (config: AxiosRequestConfig) => void
|
|
42
|
-
//# sourceMappingURL=index.d.ts.map
|
|
59
|
+
export declare const removePendingRequest: (config: AxiosRequestConfig) => void;
|
|
60
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../request/index.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAIpG,cAAc,OAAO,CAAA;AAErB;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,IAAI,EAAE,CAAC,CAAA;IACP,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,YAK7B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,SAO9C,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../request/index.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAIpG,cAAc,OAAO,CAAA;AAErB;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,IAAI,EAAE,CAAC,CAAA;IACP,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,YAK7B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,SAO9C,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,kBAAkB;IAClB,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAA;IAC5D,kBAAkB;IAClB,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAA;IAC1D,oCAAoC;IACpC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAA;IAClC,iCAAiC;IACjC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAA;IAC5B,kCAAkC;IAClC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,MAAM,CAAA;CACnC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,eAAc,mBAAwB,EACtC,UAAS,sBAA2B,kCA0GrC,CAAA;AAKD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,kBAAkB,WAM5D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,kBAAkB,SAa3D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,QAAQ,kBAAkB,SAK9D,CAAA"}
|
package/dist/request/index.js
CHANGED
|
@@ -1,159 +1,158 @@
|
|
|
1
|
-
import axios from 'axios'
|
|
2
|
-
import { ElMessage } from 'element-plus'
|
|
3
|
-
import { merge } from '../func'
|
|
4
|
-
export * from 'axios'
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import { ElMessage } from 'element-plus';
|
|
3
|
+
import { merge } from '../func';
|
|
4
|
+
export * from 'axios';
|
|
5
5
|
/**
|
|
6
6
|
* 取消所有 pending 状态的请求
|
|
7
7
|
*/
|
|
8
8
|
export const cancelAllRequests = () => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
9
|
+
pendingRequests.forEach((source) => {
|
|
10
|
+
source.cancel('所有请求已被取消');
|
|
11
|
+
});
|
|
12
|
+
pendingRequests.clear();
|
|
13
|
+
};
|
|
14
14
|
/**
|
|
15
15
|
* 根据URL取消相关请求
|
|
16
16
|
* @param {String} url 要取消请求的URL
|
|
17
17
|
*/
|
|
18
18
|
export const cancelRequestsByUrl = (url) => {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
})
|
|
25
|
-
}
|
|
26
|
-
// 创建请求实例
|
|
27
|
-
export const initRequestInstance = (
|
|
28
|
-
extendConfig = {},
|
|
29
|
-
interceptorsRequestFn = () => {},
|
|
30
|
-
interceptorsResponseFn = () => {}
|
|
31
|
-
) => {
|
|
32
|
-
const axiosConfig = merge({}, extendConfig, {
|
|
33
|
-
baseURL: '/', // 从环境变量获取基础URL
|
|
34
|
-
timeout: 10000, // 超时时间
|
|
35
|
-
headers: {
|
|
36
|
-
'Content-Type': 'application/json;charset=utf-8'
|
|
37
|
-
}
|
|
38
|
-
})
|
|
39
|
-
const instance = axios.create(axiosConfig)
|
|
40
|
-
// 请求拦截器
|
|
41
|
-
instance.interceptors.request.use(
|
|
42
|
-
(config) => {
|
|
43
|
-
interceptorsRequestFn(config)
|
|
44
|
-
// 添加请求到pending列表,处理重复请求
|
|
45
|
-
addPendingRequest(config)
|
|
46
|
-
// 可以在这里添加其他请求处理逻辑,如请求加载动画等
|
|
47
|
-
return config
|
|
48
|
-
},
|
|
49
|
-
(error) => {
|
|
50
|
-
// 请求错误处理
|
|
51
|
-
return Promise.reject(error)
|
|
52
|
-
}
|
|
53
|
-
)
|
|
54
|
-
// 响应拦截器
|
|
55
|
-
instance.interceptors.response.use(
|
|
56
|
-
(response) => {
|
|
57
|
-
interceptorsResponseFn(response)
|
|
58
|
-
// 从pending列表移除请求
|
|
59
|
-
removePendingRequest(response.config)
|
|
60
|
-
const data = response.data
|
|
61
|
-
// 根据实际后端接口规范处理响应
|
|
62
|
-
if (data.code === 200) {
|
|
63
|
-
return Promise.resolve({
|
|
64
|
-
...response,
|
|
65
|
-
...data,
|
|
66
|
-
data: data.data
|
|
67
|
-
})
|
|
68
|
-
} else {
|
|
69
|
-
// 非成功状态,显示错误信息
|
|
70
|
-
ElMessage.error(data.msg || '请求失败')
|
|
71
|
-
return Promise.reject(new Error(data.msg || '请求失败'))
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
(error) => {
|
|
75
|
-
console.log('请求发生错误>>>>>>>>>>>>>>>>>>:', error)
|
|
76
|
-
// 请求完成后从pending列表移除
|
|
77
|
-
if (error.config) {
|
|
78
|
-
removePendingRequest(error.config)
|
|
79
|
-
}
|
|
80
|
-
// 处理取消请求的错误
|
|
81
|
-
if (axios.isCancel(error)) {
|
|
82
|
-
console.warn('请求已被取消:', error.message)
|
|
83
|
-
return Promise.reject(new Error('请求已被取消'))
|
|
84
|
-
}
|
|
85
|
-
// 处理网络错误
|
|
86
|
-
if (!window.navigator.onLine) {
|
|
87
|
-
ElMessage.error('网络连接已断开,请检查网络')
|
|
88
|
-
return Promise.reject(new Error('网络连接已断开'))
|
|
89
|
-
}
|
|
90
|
-
// 处理HTTP错误状态码
|
|
91
|
-
const { response } = error
|
|
92
|
-
if (response) {
|
|
93
|
-
switch (response.status) {
|
|
94
|
-
case 401:
|
|
95
|
-
ElMessage.error('身份验证失败,请重新登录')
|
|
96
|
-
// 可以在这里添加跳转到登录页的逻辑
|
|
97
|
-
break
|
|
98
|
-
case 403:
|
|
99
|
-
ElMessage.error('没有权限执行此操作')
|
|
100
|
-
break
|
|
101
|
-
case 404:
|
|
102
|
-
ElMessage.error('请求的资源不存在')
|
|
103
|
-
break
|
|
104
|
-
case 500:
|
|
105
|
-
ElMessage.error('服务器内部错误')
|
|
106
|
-
break
|
|
107
|
-
default:
|
|
108
|
-
ElMessage.error(`请求错误: ${response.status}`)
|
|
19
|
+
Array.from(pendingRequests.entries()).forEach(([key, source]) => {
|
|
20
|
+
if (key.includes(url)) {
|
|
21
|
+
source.cancel(`与${url}相关的请求已被取消`);
|
|
22
|
+
pendingRequests.delete(key);
|
|
109
23
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* @description 初始化请求实例
|
|
28
|
+
* @author xieshuhong
|
|
29
|
+
* @param {CreateAxiosDefaults} [extendConfig={}] 扩展配置
|
|
30
|
+
* @param {RequestInstanceOptions} [options={}] 配置选项
|
|
31
|
+
* @return {*} 请求实例
|
|
32
|
+
*/
|
|
33
|
+
export const initRequestInstance = (extendConfig = {}, options = {}) => {
|
|
34
|
+
const { interceptorsRequestFn = () => { }, interceptorsResponseFn = () => { }, isSuccess = (data) => data?.code === 200, getData = (data) => data?.data, getMessage = (data) => data?.msg || '请求失败' } = options;
|
|
35
|
+
const axiosConfig = merge({}, extendConfig, {
|
|
36
|
+
baseURL: '/', // 从环境变量获取基础URL
|
|
37
|
+
timeout: 10000, // 超时时间
|
|
38
|
+
headers: {
|
|
39
|
+
'Content-Type': 'application/json;charset=utf-8'
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
const instance = axios.create(axiosConfig);
|
|
43
|
+
// 请求拦截器
|
|
44
|
+
instance.interceptors.request.use((config) => {
|
|
45
|
+
interceptorsRequestFn(config);
|
|
46
|
+
// 添加请求到pending列表,处理重复请求
|
|
47
|
+
addPendingRequest(config);
|
|
48
|
+
// 可以在这里添加其他请求处理逻辑,如请求加载动画等
|
|
49
|
+
return config;
|
|
50
|
+
}, (error) => {
|
|
51
|
+
// 请求错误处理
|
|
52
|
+
return Promise.reject(error);
|
|
53
|
+
});
|
|
54
|
+
// 响应拦截器
|
|
55
|
+
instance.interceptors.response.use((response) => {
|
|
56
|
+
interceptorsResponseFn(response);
|
|
57
|
+
// 从pending列表移除请求
|
|
58
|
+
removePendingRequest(response.config);
|
|
59
|
+
const data = response.data;
|
|
60
|
+
// 根据配置的逻辑处理响应
|
|
61
|
+
if (isSuccess(data)) {
|
|
62
|
+
return Promise.resolve({
|
|
63
|
+
...response,
|
|
64
|
+
...data,
|
|
65
|
+
data: getData(data)
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
// 非成功状态,显示错误信息
|
|
70
|
+
const msg = getMessage(data);
|
|
71
|
+
ElMessage.error(msg);
|
|
72
|
+
return Promise.reject(new Error(msg));
|
|
73
|
+
}
|
|
74
|
+
}, (error) => {
|
|
75
|
+
console.log('请求发生错误>>>>>>>>>>>>>>>>>>:', error);
|
|
76
|
+
// 请求完成后从pending列表移除
|
|
77
|
+
if (error.config) {
|
|
78
|
+
removePendingRequest(error.config);
|
|
79
|
+
}
|
|
80
|
+
// 处理取消请求的错误
|
|
81
|
+
if (axios.isCancel(error)) {
|
|
82
|
+
console.warn('请求已被取消:', error.message);
|
|
83
|
+
return Promise.reject(new Error('请求已被取消'));
|
|
84
|
+
}
|
|
85
|
+
// 处理网络错误
|
|
86
|
+
if (!window.navigator.onLine) {
|
|
87
|
+
ElMessage.error('网络连接已断开,请检查网络');
|
|
88
|
+
return Promise.reject(new Error('网络连接已断开'));
|
|
89
|
+
}
|
|
90
|
+
// 处理HTTP错误状态码
|
|
91
|
+
const { response } = error;
|
|
92
|
+
if (response) {
|
|
93
|
+
switch (response.status) {
|
|
94
|
+
case 401:
|
|
95
|
+
ElMessage.error('身份验证失败,请重新登录');
|
|
96
|
+
break;
|
|
97
|
+
case 403:
|
|
98
|
+
ElMessage.error('没有权限执行此操作');
|
|
99
|
+
break;
|
|
100
|
+
case 404:
|
|
101
|
+
ElMessage.error('请求的资源不存在');
|
|
102
|
+
break;
|
|
103
|
+
case 500:
|
|
104
|
+
ElMessage.error('服务器内部错误');
|
|
105
|
+
break;
|
|
106
|
+
default:
|
|
107
|
+
ElMessage.error(`请求错误: ${response.status}`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
ElMessage.error('请求失败,请稍后重试');
|
|
112
|
+
}
|
|
113
|
+
return Promise.reject(error);
|
|
114
|
+
});
|
|
115
|
+
return instance;
|
|
116
|
+
};
|
|
118
117
|
// 存储当前正在进行的请求
|
|
119
|
-
const pendingRequests = new Map()
|
|
118
|
+
const pendingRequests = new Map();
|
|
120
119
|
/**
|
|
121
120
|
* 生成请求唯一标识
|
|
122
121
|
* @param {Object} config 请求配置
|
|
123
122
|
* @returns {String} 唯一标识
|
|
124
123
|
*/
|
|
125
124
|
export const generateRequestKey = (config) => {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
125
|
+
const { method, url, params, data } = config;
|
|
126
|
+
// 序列化参数,确保相同参数生成相同key
|
|
127
|
+
const paramsStr = params ? JSON.stringify(params) : '';
|
|
128
|
+
const dataStr = data ? JSON.stringify(data) : '';
|
|
129
|
+
return `${method}-${url}-${paramsStr}-${dataStr}`;
|
|
130
|
+
};
|
|
132
131
|
/**
|
|
133
132
|
* 添加请求到pending列表
|
|
134
133
|
* @param {Object} config 请求配置
|
|
135
134
|
*/
|
|
136
135
|
export const addPendingRequest = (config) => {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}
|
|
136
|
+
const requestKey = generateRequestKey(config);
|
|
137
|
+
// 如果存在相同请求,则取消之前的请求
|
|
138
|
+
if (pendingRequests.has(requestKey)) {
|
|
139
|
+
const cancelToken = pendingRequests.get(requestKey);
|
|
140
|
+
cancelToken.cancel(`重复请求被取消: ${config.url}`);
|
|
141
|
+
pendingRequests.delete(requestKey);
|
|
142
|
+
}
|
|
143
|
+
// 创建新的取消令牌
|
|
144
|
+
const source = axios.CancelToken.source();
|
|
145
|
+
config.cancelToken = source.token;
|
|
146
|
+
pendingRequests.set(requestKey, source);
|
|
147
|
+
};
|
|
149
148
|
/**
|
|
150
149
|
* 从pending列表移除请求
|
|
151
150
|
* @param {Object} config 请求配置
|
|
152
151
|
*/
|
|
153
152
|
export const removePendingRequest = (config) => {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
//# sourceMappingURL=index.js.map
|
|
153
|
+
const requestKey = generateRequestKey(config);
|
|
154
|
+
if (pendingRequests.has(requestKey)) {
|
|
155
|
+
pendingRequests.delete(requestKey);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../request/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAgF,MAAM,OAAO,CAAA;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,cAAc,OAAO,CAAA;AAYrB;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACjC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;IACF,eAAe,CAAC,KAAK,EAAE,CAAA;AACzB,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAE,EAAE;IACjD,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;QAC9D,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC,CAAA;YACjC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../request/index.ts"],"names":[],"mappings":"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"}
|