@robot-admin/request-core 0.2.0 → 0.4.1
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/CHANGELOG.md +109 -0
- package/LICENSE +21 -0
- package/README.md +248 -357
- package/SECURITY.md +14 -0
- package/dist/axios.cjs +134 -809
- package/dist/axios.cjs.map +1 -1
- package/dist/axios.d.cts +55 -220
- package/dist/axios.d.ts +55 -220
- package/dist/axios.js +2 -790
- package/dist/axios.js.map +1 -1
- package/dist/chunk-2JXH7SIL.js +711 -0
- package/dist/chunk-2JXH7SIL.js.map +1 -0
- package/dist/chunk-56QOEWUS.js +8 -0
- package/dist/chunk-56QOEWUS.js.map +1 -0
- package/dist/chunk-DUP3Y4DN.js +320 -0
- package/dist/chunk-DUP3Y4DN.js.map +1 -0
- package/dist/chunk-JGFRUAZT.cjs +1007 -0
- package/dist/chunk-JGFRUAZT.cjs.map +1 -0
- package/dist/chunk-KHI6XQRN.cjs +717 -0
- package/dist/chunk-KHI6XQRN.cjs.map +1 -0
- package/dist/chunk-OAZ5BUBU.js +969 -0
- package/dist/chunk-OAZ5BUBU.js.map +1 -0
- package/dist/chunk-QSDNDTOZ.js +28 -0
- package/dist/chunk-QSDNDTOZ.js.map +1 -0
- package/dist/chunk-UHXBAFY6.cjs +323 -0
- package/dist/chunk-UHXBAFY6.cjs.map +1 -0
- package/dist/chunk-WUZ43MLM.cjs +30 -0
- package/dist/chunk-WUZ43MLM.cjs.map +1 -0
- package/dist/chunk-WXHQXPS4.cjs +10 -0
- package/dist/chunk-WXHQXPS4.cjs.map +1 -0
- package/dist/crud.cjs +12 -484
- package/dist/crud.cjs.map +1 -1
- package/dist/crud.d.cts +8 -269
- package/dist/crud.d.ts +8 -269
- package/dist/crud.js +4 -487
- package/dist/crud.js.map +1 -1
- package/dist/index.cjs +136 -1302
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -165
- package/dist/index.d.ts +7 -165
- package/dist/index.js +5 -1283
- package/dist/index.js.map +1 -1
- package/dist/naive.cjs +14 -0
- package/dist/naive.cjs.map +1 -0
- package/dist/naive.d.cts +9 -0
- package/dist/naive.d.ts +9 -0
- package/dist/naive.js +5 -0
- package/dist/naive.js.map +1 -0
- package/dist/types-BRDRqYFs.d.cts +197 -0
- package/dist/types-BVJhlSuh.d.cts +310 -0
- package/dist/types-BVJhlSuh.d.ts +310 -0
- package/dist/types-CUyibJZX.d.ts +197 -0
- package/dist/vue.cjs +93 -0
- package/dist/vue.cjs.map +1 -0
- package/dist/vue.d.cts +38 -0
- package/dist/vue.d.ts +38 -0
- package/dist/vue.js +71 -0
- package/dist/vue.js.map +1 -0
- package/package.json +60 -16
package/dist/axios.d.ts
CHANGED
|
@@ -1,232 +1,67 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AxiosInstance, AxiosRequestConfig } from 'axios';
|
|
2
|
+
import { b as CacheStore, o as RequestPolicyDefaults, e as EnhancedAxiosRequestConfig, p as RequestScope, E as EnhancedAxiosInstance, g as RequestClientConfig, f as RequestClient, M as MemoryCacheOptions, m as RequestKeyOptions } from './types-BVJhlSuh.js';
|
|
3
|
+
export { B as BusinessErrorDescriptor, C as CacheConfig, a as CacheItem, c as CancelConfig, d as ConcurrencyPolicy, D as DedupeConfig, F as FieldAliases, I as InterceptorConfig, R as RequestAuthConfig, h as RequestConfig, i as RequestCoreConfig, j as RequestError, k as RequestHooks, l as RequestInterceptors, n as RequestKeyParams, q as ResponseAdapter, r as RetryConfig, s as RetryContext, t as createRequestCore, u as getGlobalConfig, v as isCanceledError, w as isRequestError, x as normalizeRequestError } from './types-BVJhlSuh.js';
|
|
4
|
+
import 'vue';
|
|
2
5
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
interface DedupeConfig {
|
|
7
|
-
/** 是否启用去重(默认 true) */
|
|
8
|
-
enabled?: boolean;
|
|
9
|
-
/** 自定义请求 key 生成函数 */
|
|
10
|
-
keyGenerator?: (config: AxiosRequestConfig) => string;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* 请求缓存配置
|
|
14
|
-
*/
|
|
15
|
-
interface CacheConfig {
|
|
16
|
-
/** 是否启用缓存(默认 false,只对 GET 请求有效) */
|
|
17
|
-
enabled?: boolean;
|
|
18
|
-
/** 缓存时间(毫秒,默认 5 分钟) */
|
|
19
|
-
ttl?: number;
|
|
20
|
-
/** 是否强制刷新缓存 */
|
|
21
|
-
forceUpdate?: boolean;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* 请求重试配置
|
|
25
|
-
*/
|
|
26
|
-
interface RetryConfig {
|
|
27
|
-
/** 是否启用重试(默认 false) */
|
|
28
|
-
enabled?: boolean;
|
|
29
|
-
/** 重试次数(默认 3) */
|
|
30
|
-
count?: number;
|
|
31
|
-
/** 重试延迟(毫秒,默认 1000) */
|
|
32
|
-
delay?: number;
|
|
33
|
-
/** 是否使用指数退避(默认 true) */
|
|
34
|
-
exponentialBackoff?: boolean;
|
|
35
|
-
/** 是否启用随机抖动(默认 true),避免重试风暴 */
|
|
36
|
-
jitter?: boolean;
|
|
37
|
-
/** 可重试的 HTTP 状态码 */
|
|
38
|
-
retryableStatusCodes?: number[];
|
|
39
|
-
/** 允许重试的 HTTP 方法(默认仅幂等方法,避免对非幂等 POST/PUT/DELETE 重复执行副作用) */
|
|
40
|
-
retryableMethods?: string[];
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* 路由取消配置
|
|
44
|
-
*/
|
|
45
|
-
interface CancelConfig {
|
|
46
|
-
/** 是否启用路由切换时自动取消(默认 true) */
|
|
47
|
-
enabled?: boolean;
|
|
48
|
-
/** 白名单:不需要取消的请求 URL 模式 */
|
|
49
|
-
whitelist?: RegExp[];
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* 扩展的 Axios 请求配置
|
|
53
|
-
*/
|
|
54
|
-
interface EnhancedAxiosRequestConfig extends AxiosRequestConfig {
|
|
55
|
-
/** 请求去重配置 */
|
|
56
|
-
dedupe?: boolean | DedupeConfig;
|
|
57
|
-
/** 请求缓存配置 */
|
|
58
|
-
cache?: boolean | CacheConfig;
|
|
59
|
-
/** 请求重试配置 */
|
|
60
|
-
retry?: boolean | RetryConfig;
|
|
61
|
-
/** 路由取消配置 */
|
|
62
|
-
cancel?: boolean | CancelConfig;
|
|
63
|
-
/** 内部标记:当前重试次数 */
|
|
64
|
-
__retryCount?: number;
|
|
65
|
-
/** 内部标记:取消请求 ID */
|
|
66
|
-
__cancelId?: string;
|
|
67
|
-
/** 内部标记:去重请求键 */
|
|
68
|
-
__requestKey?: string;
|
|
69
|
-
/** 内部标记:是否来自缓存 */
|
|
70
|
-
__fromCache?: boolean;
|
|
71
|
-
/** 内部标记:共享的 AbortController(dedupe 与 cancel 复用,避免 signal 互相覆盖) */
|
|
72
|
-
__abortController?: EnhancedAbortController;
|
|
73
|
-
/** 内部标记:调用方原始 AbortSignal,用于在最终响应阶段恢复配置 */
|
|
74
|
-
__externalSignal?: AxiosRequestConfig["signal"];
|
|
75
|
-
/** 内部标记:移除外部 AbortSignal 桥接监听器 */
|
|
76
|
-
__abortCleanup?: () => void;
|
|
77
|
-
/** 内部标记:是否被 cancel 插件管理(保留兼容) */
|
|
78
|
-
__managedByCancel?: boolean;
|
|
79
|
-
/** 内部标记:是否正在处理 401 错误 */
|
|
80
|
-
__handling401?: boolean;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* 缓存项
|
|
84
|
-
*/
|
|
85
|
-
interface CacheItem<T = any> {
|
|
86
|
-
/** 缓存数据 */
|
|
87
|
-
data: T;
|
|
88
|
-
/** 过期时间戳 */
|
|
89
|
-
expireAt: number;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* 请求 key 生成器参数
|
|
93
|
-
*/
|
|
94
|
-
interface RequestKeyParams {
|
|
95
|
-
method?: string;
|
|
96
|
-
url?: string;
|
|
97
|
-
params?: any;
|
|
98
|
-
data?: any;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* 扩展的 AbortController 接口
|
|
102
|
-
*/
|
|
103
|
-
interface EnhancedAbortController extends AbortController {
|
|
104
|
-
/** 请求开始时间 */
|
|
105
|
-
_startTime?: number;
|
|
6
|
+
interface CreateRequestRuntimeOptions {
|
|
7
|
+
cache?: CacheStore;
|
|
8
|
+
defaults?: RequestPolicyDefaults;
|
|
106
9
|
}
|
|
107
10
|
|
|
108
11
|
declare function setGlobalAxiosInstance(instance: AxiosInstance): void;
|
|
109
12
|
declare function getGlobalAxiosInstance(): AxiosInstance;
|
|
110
|
-
declare function getData<T =
|
|
111
|
-
declare function postData<T =
|
|
112
|
-
declare function putData<T =
|
|
113
|
-
declare function
|
|
13
|
+
declare function getData<T = unknown>(url: string, config?: EnhancedAxiosRequestConfig): Promise<T>;
|
|
14
|
+
declare function postData<T = unknown, D = unknown>(url: string, data?: D, config?: EnhancedAxiosRequestConfig<D>): Promise<T>;
|
|
15
|
+
declare function putData<T = unknown, D = unknown>(url: string, data?: D, config?: EnhancedAxiosRequestConfig<D>): Promise<T>;
|
|
16
|
+
declare function patchData<T = unknown, D = unknown>(url: string, data?: D, config?: EnhancedAxiosRequestConfig<D>): Promise<T>;
|
|
17
|
+
declare function deleteData<T = unknown>(url: string, config?: EnhancedAxiosRequestConfig): Promise<T>;
|
|
18
|
+
|
|
19
|
+
declare function waitForReLogin(instance?: AxiosInstance): Promise<void>;
|
|
20
|
+
declare function getReLoginPromise(instance?: AxiosInstance): Promise<void> | null;
|
|
114
21
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
*/
|
|
118
|
-
declare function waitForReLogin(): Promise<void>;
|
|
119
|
-
/**
|
|
120
|
-
* 获取重新登录 Promise
|
|
121
|
-
*/
|
|
122
|
-
declare function getReLoginPromise(): Promise<void> | null;
|
|
22
|
+
declare function cancelAllPendingRequests(instance?: AxiosInstance): void;
|
|
23
|
+
declare function getPendingRequestCount(instance?: AxiosInstance): number;
|
|
123
24
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
* - 调试和测试场景
|
|
131
|
-
*
|
|
132
|
-
* 安全机制:
|
|
133
|
-
* - 捕获每个取消操作的异常
|
|
134
|
-
* - 确保一个请求的失败不影响其他请求的取消
|
|
135
|
-
* - 完全清理 Map 中的所有引用
|
|
136
|
-
*/
|
|
137
|
-
declare function cancelAllPendingRequests(): void;
|
|
138
|
-
/**
|
|
139
|
-
* 获取待处理请求数量
|
|
140
|
-
*
|
|
141
|
-
* @returns 当前待处理的请求数量
|
|
142
|
-
*
|
|
143
|
-
* 监控用途:
|
|
144
|
-
* - 性能监控和分析
|
|
145
|
-
* - 调试请求状态
|
|
146
|
-
* - 检测潜在的请求泄漏
|
|
147
|
-
* - 评估去重效果
|
|
148
|
-
*/
|
|
149
|
-
declare function getPendingRequestCount(): number;
|
|
25
|
+
declare function clearAllCache(instance?: AxiosInstance): void;
|
|
26
|
+
declare function clearCache(config: AxiosRequestConfig, instance?: AxiosInstance): boolean;
|
|
27
|
+
declare function clearCacheByPrefix(prefix: string, instance?: AxiosInstance): number;
|
|
28
|
+
declare function clearCacheByTag(tag: string, instance?: AxiosInstance): number;
|
|
29
|
+
declare function cleanupExpiredCache(instance?: AxiosInstance): void;
|
|
30
|
+
declare function getCacheSize(instance?: AxiosInstance): number;
|
|
150
31
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
* 用于:
|
|
155
|
-
* - 用户登出时清理敏感数据
|
|
156
|
-
* - 开发调试时重置缓存状态
|
|
157
|
-
*/
|
|
158
|
-
declare function clearAllCache(): void;
|
|
159
|
-
/**
|
|
160
|
-
* 删除指定缓存
|
|
161
|
-
*
|
|
162
|
-
* @param config 请求配置
|
|
163
|
-
* @returns 是否删除成功
|
|
164
|
-
*
|
|
165
|
-
* 用于:
|
|
166
|
-
* - 数据更新时清理特定缓存
|
|
167
|
-
* - 缓存失效时的精确清理
|
|
168
|
-
*/
|
|
169
|
-
declare function clearCache(config: InternalAxiosRequestConfig): boolean;
|
|
170
|
-
/**
|
|
171
|
-
* 清理过期缓存
|
|
172
|
-
*
|
|
173
|
-
* 自动清理机制:
|
|
174
|
-
* - 由 globalCache 内部实现
|
|
175
|
-
* - 基于 TTL 过期时间
|
|
176
|
-
* - 定期清理防止内存泄漏
|
|
177
|
-
*/
|
|
178
|
-
declare function cleanupExpiredCache(): void;
|
|
179
|
-
/**
|
|
180
|
-
* 获取缓存大小
|
|
181
|
-
*
|
|
182
|
-
* @returns 当前缓存条目数量
|
|
183
|
-
*
|
|
184
|
-
* 用于:
|
|
185
|
-
* - 监控缓存使用情况
|
|
186
|
-
* - 性能分析和调试
|
|
187
|
-
*/
|
|
188
|
-
declare function getCacheSize(): number;
|
|
32
|
+
declare function cancelAllRequests(instance?: AxiosInstance): void;
|
|
33
|
+
declare function cancelRequestScope(scope: RequestScope, instance?: AxiosInstance): number;
|
|
34
|
+
declare function getCancelableRequestCount(instance?: AxiosInstance): number;
|
|
189
35
|
|
|
190
|
-
/**
|
|
191
|
-
|
|
192
|
-
*
|
|
193
|
-
* 使用场景:
|
|
194
|
-
* - 路由切换时取消当前页面的所有请求
|
|
195
|
-
* - 用户登出时清理所有请求
|
|
196
|
-
* - 网络异常时重置请求状态
|
|
197
|
-
*
|
|
198
|
-
* 安全机制:
|
|
199
|
-
* - 捕获每个取消操作的异常
|
|
200
|
-
* - 确保一个请求的失败不影响其他请求的取消
|
|
201
|
-
*/
|
|
202
|
-
declare function cancelAllRequests(): void;
|
|
203
|
-
/**
|
|
204
|
-
* 获取待取消请求数量
|
|
205
|
-
*
|
|
206
|
-
* @returns 当前待取消的请求数量
|
|
207
|
-
*
|
|
208
|
-
* 监控用途:
|
|
209
|
-
* - 性能监控和分析
|
|
210
|
-
* - 调试请求状态
|
|
211
|
-
* - 检测潜在的请求泄漏
|
|
212
|
-
*/
|
|
213
|
-
declare function getCancelableRequestCount(): number;
|
|
36
|
+
/** Creates an isolated Axios instance with request-core lifecycle policies. */
|
|
37
|
+
declare function createAxiosInstance(config?: AxiosRequestConfig, runtimeOptions?: CreateRequestRuntimeOptions): EnhancedAxiosInstance;
|
|
214
38
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
* @param config axios 配置
|
|
218
|
-
*/
|
|
219
|
-
declare function createAxiosInstance(config?: AxiosRequestConfig): AxiosInstance;
|
|
39
|
+
declare const onReLoginSuccess: (instance?: AxiosInstance) => void;
|
|
40
|
+
declare const onReLoginCancel: (instance?: AxiosInstance) => void;
|
|
220
41
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
declare
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
42
|
+
declare function createRequestClient(config?: RequestClientConfig): RequestClient;
|
|
43
|
+
declare function setDefaultRequestClient(client: RequestClient): void;
|
|
44
|
+
|
|
45
|
+
declare function generateRequestKey(config: AxiosRequestConfig, options?: RequestKeyOptions): string;
|
|
46
|
+
declare class MemoryCache implements CacheStore {
|
|
47
|
+
private readonly cache;
|
|
48
|
+
private readonly accessOrder;
|
|
49
|
+
private maxSize;
|
|
50
|
+
private readonly cloneValue;
|
|
51
|
+
constructor(options?: MemoryCacheOptions);
|
|
52
|
+
get<T = unknown>(key: string): T | null;
|
|
53
|
+
set<T = unknown>(key: string, data: T, ttl: number, options?: {
|
|
54
|
+
tags?: readonly string[];
|
|
55
|
+
}): void;
|
|
56
|
+
delete(key: string): boolean;
|
|
57
|
+
clear(): void;
|
|
58
|
+
cleanup(): void;
|
|
59
|
+
deleteByPrefix(prefix: string): number;
|
|
60
|
+
deleteByTag(tag: string): number;
|
|
61
|
+
get size(): number;
|
|
62
|
+
setMaxSize(size: number): void;
|
|
63
|
+
private assertMaxSize;
|
|
64
|
+
private evictOldest;
|
|
65
|
+
}
|
|
231
66
|
|
|
232
|
-
export {
|
|
67
|
+
export { CacheStore, EnhancedAxiosInstance, EnhancedAxiosRequestConfig, MemoryCache, MemoryCacheOptions, RequestClient, RequestClientConfig, RequestKeyOptions, RequestPolicyDefaults, RequestScope, cancelAllPendingRequests, cancelAllRequests, cancelRequestScope, cleanupExpiredCache, clearAllCache, clearCache, clearCacheByPrefix, clearCacheByTag, createAxiosInstance, createRequestClient, deleteData, generateRequestKey, getCacheSize, getCancelableRequestCount, getData, getGlobalAxiosInstance, getPendingRequestCount, getReLoginPromise, onReLoginCancel, onReLoginSuccess, patchData, postData, putData, setDefaultRequestClient, setGlobalAxiosInstance, waitForReLogin };
|