xxf_react 0.8.5 → 0.8.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/cache/CacheEntry.d.ts +28 -0
- package/dist/cache/CacheEntry.d.ts.map +1 -0
- package/dist/cache/CacheEntry.js +1 -0
- package/dist/cache/DiskCacheConfig.d.ts +56 -0
- package/dist/cache/DiskCacheConfig.d.ts.map +1 -0
- package/dist/cache/DiskCacheConfig.js +4 -0
- package/dist/cache/DiskLruCache.d.ts +69 -0
- package/dist/cache/DiskLruCache.d.ts.map +1 -0
- package/dist/cache/DiskLruCache.js +305 -0
- package/dist/cache/LruMetadata.d.ts +28 -0
- package/dist/cache/LruMetadata.d.ts.map +1 -0
- package/dist/cache/LruMetadata.js +6 -0
- package/dist/cache/index.d.ts +5 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +2 -0
- package/dist/event-bus/EventBus.d.ts +176 -0
- package/dist/event-bus/EventBus.d.ts.map +1 -0
- package/dist/event-bus/EventBus.js +278 -0
- package/dist/event-bus/EventDemo.d.ts +71 -0
- package/dist/event-bus/EventDemo.d.ts.map +1 -0
- package/dist/event-bus/EventDemo.js +76 -0
- package/dist/event-bus/EventHooks.d.ts +48 -0
- package/dist/event-bus/EventHooks.d.ts.map +1 -0
- package/dist/event-bus/EventHooks.js +73 -0
- package/dist/event-bus/index.d.ts +3 -0
- package/dist/event-bus/index.d.ts.map +1 -0
- package/dist/event-bus/index.js +2 -0
- package/dist/fetch/Fetch.d.ts +9 -0
- package/dist/fetch/Fetch.d.ts.map +1 -0
- package/dist/fetch/Fetch.js +54 -0
- package/dist/fetch/TimeoutError.d.ts +7 -0
- package/dist/fetch/TimeoutError.d.ts.map +1 -0
- package/dist/fetch/TimeoutError.js +23 -0
- package/dist/fetch/index.d.ts +3 -0
- package/dist/fetch/index.d.ts.map +1 -0
- package/dist/fetch/index.js +2 -0
- package/dist/flow/PromiseExt.d.ts +8 -0
- package/dist/flow/PromiseExt.d.ts.map +1 -0
- package/dist/flow/PromiseExt.js +50 -0
- package/dist/flow/PromiseLifecycle.d.ts +33 -0
- package/dist/flow/PromiseLifecycle.d.ts.map +1 -0
- package/dist/flow/PromiseLifecycle.js +37 -0
- package/dist/flow/PromiseLoading.d.ts +25 -0
- package/dist/flow/PromiseLoading.d.ts.map +1 -0
- package/dist/flow/PromiseLoading.js +30 -0
- package/dist/flow/index.d.ts +4 -0
- package/dist/flow/index.d.ts.map +1 -0
- package/dist/flow/index.js +3 -0
- package/dist/foundation/Copy.d.ts +8 -0
- package/dist/foundation/Copy.d.ts.map +1 -0
- package/dist/foundation/Copy.js +21 -0
- package/dist/foundation/Debug.d.ts +7 -0
- package/dist/foundation/Debug.d.ts.map +1 -0
- package/dist/foundation/Debug.js +12 -0
- package/dist/foundation/LayoutSize.d.ts +5 -0
- package/dist/foundation/LayoutSize.d.ts.map +1 -0
- package/dist/foundation/LayoutSize.js +1 -0
- package/dist/foundation/PerformanceMonitor.d.ts +13 -0
- package/dist/foundation/PerformanceMonitor.d.ts.map +1 -0
- package/dist/foundation/PerformanceMonitor.js +26 -0
- package/dist/foundation/index.d.ts +5 -0
- package/dist/foundation/index.d.ts.map +1 -0
- package/dist/foundation/index.js +4 -0
- package/dist/http/api/ApiBuilder.d.ts +251 -0
- package/dist/http/api/ApiBuilder.d.ts.map +1 -0
- package/dist/http/api/ApiBuilder.js +189 -0
- package/dist/http/api/index.d.ts +2 -0
- package/dist/http/api/index.d.ts.map +1 -0
- package/dist/http/api/index.js +1 -0
- package/dist/http/cache/HttpCache.d.ts +59 -0
- package/dist/http/cache/HttpCache.d.ts.map +1 -0
- package/dist/http/cache/HttpCache.js +215 -0
- package/dist/http/cache/index.d.ts +3 -0
- package/dist/http/cache/index.d.ts.map +1 -0
- package/dist/http/cache/index.js +2 -0
- package/dist/http/client/ApiStream.d.ts +80 -0
- package/dist/http/client/ApiStream.d.ts.map +1 -0
- package/dist/http/client/ApiStream.js +190 -0
- package/dist/http/client/HttpClient.d.ts +88 -0
- package/dist/http/client/HttpClient.d.ts.map +1 -0
- package/dist/http/client/HttpClient.js +381 -0
- package/dist/http/client/index.d.ts +3 -0
- package/dist/http/client/index.d.ts.map +1 -0
- package/dist/http/client/index.js +2 -0
- package/dist/http/demo/api-builder.demo.d.ts +102 -0
- package/dist/http/demo/api-builder.demo.d.ts.map +1 -0
- package/dist/http/demo/api-builder.demo.js +343 -0
- package/dist/http/index.d.ts +52 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +61 -0
- package/dist/http/interceptor/CacheInterceptor.d.ts +112 -0
- package/dist/http/interceptor/CacheInterceptor.d.ts.map +1 -0
- package/dist/http/interceptor/CacheInterceptor.js +6 -0
- package/dist/http/interceptor/DefaultCacheInterceptor.d.ts +53 -0
- package/dist/http/interceptor/DefaultCacheInterceptor.d.ts.map +1 -0
- package/dist/http/interceptor/DefaultCacheInterceptor.js +106 -0
- package/dist/http/interceptor/index.d.ts +3 -0
- package/dist/http/interceptor/index.d.ts.map +1 -0
- package/dist/http/interceptor/index.js +2 -0
- package/dist/http/models/ApiTypes.d.ts +54 -0
- package/dist/http/models/ApiTypes.d.ts.map +1 -0
- package/dist/http/models/ApiTypes.js +4 -0
- package/dist/http/models/CacheConfig.d.ts +58 -0
- package/dist/http/models/CacheConfig.d.ts.map +1 -0
- package/dist/http/models/CacheConfig.js +4 -0
- package/dist/http/models/CacheMode.d.ts +45 -0
- package/dist/http/models/CacheMode.d.ts.map +1 -0
- package/dist/http/models/CacheMode.js +45 -0
- package/dist/http/models/HttpClientConfig.d.ts +90 -0
- package/dist/http/models/HttpClientConfig.d.ts.map +1 -0
- package/dist/http/models/HttpClientConfig.js +4 -0
- package/dist/http/models/RequestConfig.d.ts +67 -0
- package/dist/http/models/RequestConfig.d.ts.map +1 -0
- package/dist/http/models/RequestConfig.js +4 -0
- package/dist/http/models/index.d.ts +24 -0
- package/dist/http/models/index.d.ts.map +1 -0
- package/dist/http/models/index.js +16 -0
- package/dist/http/types.d.ts +13 -0
- package/dist/http/types.d.ts.map +1 -0
- package/dist/http/types.js +14 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/layout/button/XButton.d.ts +99 -0
- package/dist/layout/button/XButton.d.ts.map +1 -0
- package/dist/layout/button/XButton.js +131 -0
- package/dist/layout/hover/XHover.d.ts +147 -0
- package/dist/layout/hover/XHover.d.ts.map +1 -0
- package/dist/layout/hover/XHover.js +128 -0
- package/dist/layout/image/XImage.d.ts +35 -0
- package/dist/layout/image/XImage.d.ts.map +1 -0
- package/dist/layout/image/XImage.effects.d.ts +16 -0
- package/dist/layout/image/XImage.effects.d.ts.map +1 -0
- package/dist/layout/image/XImage.effects.js +77 -0
- package/dist/layout/image/XImage.js +261 -0
- package/dist/layout/image/XImage.types.d.ts +130 -0
- package/dist/layout/image/XImage.types.d.ts.map +1 -0
- package/dist/layout/image/XImage.types.js +2 -0
- package/dist/layout/image/XImageGallery.d.ts +76 -0
- package/dist/layout/image/XImageGallery.d.ts.map +1 -0
- package/dist/layout/image/XImageGallery.js +94 -0
- package/dist/layout/image/index.d.ts +12 -0
- package/dist/layout/image/index.d.ts.map +1 -0
- package/dist/layout/image/index.js +4 -0
- package/dist/layout/index.d.ts +12 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +11 -0
- package/dist/layout/resize/core/ResizeObserverHook.d.ts +41 -0
- package/dist/layout/resize/core/ResizeObserverHook.d.ts.map +1 -0
- package/dist/layout/resize/core/ResizeObserverHook.js +57 -0
- package/dist/layout/resize/core/SizedLayoutContext.d.ts +23 -0
- package/dist/layout/resize/core/SizedLayoutContext.d.ts.map +1 -0
- package/dist/layout/resize/core/SizedLayoutContext.js +23 -0
- package/dist/layout/resize/core/SizedLayoutProps.d.ts +19 -0
- package/dist/layout/resize/core/SizedLayoutProps.d.ts.map +1 -0
- package/dist/layout/resize/core/SizedLayoutProps.js +1 -0
- package/dist/layout/resize/impl/SizedContainer.d.ts +45 -0
- package/dist/layout/resize/impl/SizedContainer.d.ts.map +1 -0
- package/dist/layout/resize/impl/SizedContainer.js +65 -0
- package/dist/layout/resize/impl/SizedLayout.d.ts +45 -0
- package/dist/layout/resize/impl/SizedLayout.d.ts.map +1 -0
- package/dist/layout/resize/impl/SizedLayout.js +65 -0
- package/dist/layout/spinner/XSpinner.d.ts +43 -0
- package/dist/layout/spinner/XSpinner.d.ts.map +1 -0
- package/dist/layout/spinner/XSpinner.js +47 -0
- package/dist/layout/virtualized/VirtualizedConfig.d.ts +16 -0
- package/dist/layout/virtualized/VirtualizedConfig.d.ts.map +1 -0
- package/dist/layout/virtualized/VirtualizedConfig.js +15 -0
- package/dist/layout/visibility/ElementVisibilityHooks.d.ts +13 -0
- package/dist/layout/visibility/ElementVisibilityHooks.d.ts.map +1 -0
- package/dist/layout/visibility/ElementVisibilityHooks.js +119 -0
- package/dist/media/components/XVideo.d.ts +205 -0
- package/dist/media/components/XVideo.d.ts.map +1 -0
- package/dist/media/components/XVideo.js +297 -0
- package/dist/media/components/XVideoBufferingIndicator.d.ts +13 -0
- package/dist/media/components/XVideoBufferingIndicator.d.ts.map +1 -0
- package/dist/media/components/XVideoBufferingIndicator.js +13 -0
- package/dist/media/components/XVideoErrorIndicator.d.ts +15 -0
- package/dist/media/components/XVideoErrorIndicator.d.ts.map +1 -0
- package/dist/media/components/XVideoErrorIndicator.js +19 -0
- package/dist/media/index.d.ts +7 -0
- package/dist/media/index.d.ts.map +1 -0
- package/dist/media/index.js +7 -0
- package/dist/media/playback-queue-store.d.ts +746 -0
- package/dist/media/playback-queue-store.d.ts.map +1 -0
- package/dist/media/playback-queue-store.js +670 -0
- package/dist/media/video-play-safe.d.ts +26 -0
- package/dist/media/video-play-safe.d.ts.map +1 -0
- package/dist/media/video-play-safe.js +56 -0
- package/dist/media/video-state.d.ts +38 -0
- package/dist/media/video-state.d.ts.map +1 -0
- package/dist/media/video-state.js +125 -0
- package/dist/models/ApiPageDataFieldDTO.d.ts +9 -0
- package/dist/models/ApiPageDataFieldDTO.d.ts.map +1 -0
- package/dist/models/ApiPageDataFieldDTO.js +1 -0
- package/dist/models/ApiResponse.d.ts +29 -0
- package/dist/models/ApiResponse.d.ts.map +1 -0
- package/dist/models/ApiResponse.js +32 -0
- package/dist/models/PaginationDTO.d.ts +8 -0
- package/dist/models/PaginationDTO.d.ts.map +1 -0
- package/dist/models/PaginationDTO.js +6 -0
- package/dist/models/index.d.ts +4 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +3 -0
- package/dist/refresh/LoadMoreAsync.d.ts +36 -0
- package/dist/refresh/LoadMoreAsync.d.ts.map +1 -0
- package/dist/refresh/LoadMoreAsync.js +55 -0
- package/dist/refresh/index.d.ts +2 -0
- package/dist/refresh/index.d.ts.map +1 -0
- package/dist/refresh/index.js +2 -0
- package/dist/responsive/BrowserAdapter.d.ts +26 -0
- package/dist/responsive/BrowserAdapter.d.ts.map +1 -0
- package/dist/responsive/BrowserAdapter.js +79 -0
- package/dist/responsive/ScreenAdapter.d.ts +2 -0
- package/dist/responsive/ScreenAdapter.d.ts.map +1 -0
- package/dist/responsive/ScreenAdapter.js +5 -0
- package/dist/responsive/index.d.ts +3 -0
- package/dist/responsive/index.d.ts.map +1 -0
- package/dist/responsive/index.js +3 -0
- package/dist/sse/SSEManager.d.ts +21 -0
- package/dist/sse/SSEManager.d.ts.map +1 -0
- package/dist/sse/SSEManager.js +73 -0
- package/dist/sse/SSERegistry.d.ts +20 -0
- package/dist/sse/SSERegistry.d.ts.map +1 -0
- package/dist/sse/SSERegistry.js +36 -0
- package/dist/sse/SSEStatus.d.ts +7 -0
- package/dist/sse/SSEStatus.d.ts.map +1 -0
- package/dist/sse/SSEStatus.js +7 -0
- package/dist/sse/UseSSE.d.ts +13 -0
- package/dist/sse/UseSSE.d.ts.map +1 -0
- package/dist/sse/UseSSE.js +39 -0
- package/dist/sse/index.d.ts +5 -0
- package/dist/sse/index.d.ts.map +1 -0
- package/dist/sse/index.js +5 -0
- package/dist/utils/MIME.d.ts +137 -0
- package/dist/utils/MIME.d.ts.map +1 -0
- package/dist/utils/MIME.js +192 -0
- package/dist/utils/Reload.d.ts +62 -0
- package/dist/utils/Reload.d.ts.map +1 -0
- package/dist/utils/Reload.js +66 -0
- package/dist/utils/ScrollToCenter.d.ts +72 -0
- package/dist/utils/ScrollToCenter.d.ts.map +1 -0
- package/dist/utils/ScrollToCenter.js +145 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/url-placholder.d.ts +14 -0
- package/dist/utils/url-placholder.d.ts.map +1 -0
- package/dist/utils/url-placholder.js +17 -0
- package/package.json +1 -1
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 全局缓存拦截器
|
|
3
|
+
* 用于 xxf_react/http 的 ApiBuilder
|
|
4
|
+
*/
|
|
5
|
+
import { isApiSuccess } from '../../models';
|
|
6
|
+
/**
|
|
7
|
+
* 默认缓存拦截器
|
|
8
|
+
*
|
|
9
|
+
* 只有满足以下条件才缓存:
|
|
10
|
+
* - HTTP 状态码 = 200
|
|
11
|
+
* - Content-Type 包含 application/json(不区分大小写)
|
|
12
|
+
* - data 是有效对象或数组
|
|
13
|
+
* - ApiResponse.code 存在且为成功值(0 或 200)
|
|
14
|
+
*
|
|
15
|
+
* 特殊处理:
|
|
16
|
+
* - code 字段支持 number 或 string 类型
|
|
17
|
+
* - 所有检查都有异常保护,异常时默认不缓存
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* ApiBuilder.create({
|
|
22
|
+
* baseUrl: '...',
|
|
23
|
+
* cacheInterceptor: defaultCacheInterceptor,
|
|
24
|
+
* })
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export const defaultCacheInterceptor = (ctx) => {
|
|
28
|
+
var _a, _b;
|
|
29
|
+
try {
|
|
30
|
+
// 1. 检查 HTTP 状态码
|
|
31
|
+
if (ctx.status !== 200) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
// 2. 检查 Content-Type 是否为 JSON(不区分大小写)
|
|
35
|
+
const contentType = (_b = (_a = ctx.headers) === null || _a === void 0 ? void 0 : _a.get('Content-Type')) !== null && _b !== void 0 ? _b : '';
|
|
36
|
+
if (!contentType.toLowerCase().includes('application/json')) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
// 3. 检查 data 是否为有效对象或数组
|
|
40
|
+
if (ctx.data === null || ctx.data === undefined) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
if (typeof ctx.data !== 'object') {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
// 4. 检查业务码(支持 number 或 string 类型)
|
|
47
|
+
const res = ctx.data;
|
|
48
|
+
if (res.code === undefined || res.code === null) {
|
|
49
|
+
// 没有 code 字段,不符合 ApiResponse 规范,不缓存
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
// 将 code 转换为 number 进行判断
|
|
53
|
+
const codeNum = typeof res.code === 'string' ? parseInt(res.code, 10) : res.code;
|
|
54
|
+
if (isNaN(codeNum)) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
return isApiSuccess(codeNum);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// 任何异常都不缓存,保守策略
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* 创建自定义缓存拦截器
|
|
66
|
+
*
|
|
67
|
+
* 在默认检查基础上添加自定义逻辑。
|
|
68
|
+
* 默认检查通过后才会执行自定义检查。
|
|
69
|
+
*
|
|
70
|
+
* @param customCheck 自定义检查函数,在默认检查通过后执行
|
|
71
|
+
* @returns 组合后的缓存拦截器
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```ts
|
|
75
|
+
* // 额外检查:只缓存有 data 字段的响应
|
|
76
|
+
* const myInterceptor = createCacheInterceptor((ctx) => {
|
|
77
|
+
* const res = ctx.data as { data?: unknown }
|
|
78
|
+
* return res.data !== undefined
|
|
79
|
+
* })
|
|
80
|
+
*
|
|
81
|
+
* // 额外检查:只缓存列表数据
|
|
82
|
+
* const listInterceptor = createCacheInterceptor((ctx) => {
|
|
83
|
+
* const res = ctx.data as { data?: unknown[] }
|
|
84
|
+
* return Array.isArray(res.data) && res.data.length > 0
|
|
85
|
+
* })
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export function createCacheInterceptor(customCheck) {
|
|
89
|
+
return (ctx) => {
|
|
90
|
+
try {
|
|
91
|
+
// 先执行默认检查
|
|
92
|
+
if (!defaultCacheInterceptor(ctx)) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
// 执行自定义检查(如果有)
|
|
96
|
+
if (customCheck) {
|
|
97
|
+
return customCheck(ctx);
|
|
98
|
+
}
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// 自定义检查异常时不缓存
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http/interceptor/index.ts"],"names":[],"mappings":"AACA,YAAY,EACR,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,GACzB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API 响应相关类型
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* API 响应结果
|
|
6
|
+
*
|
|
7
|
+
* 包含响应数据和来源标识
|
|
8
|
+
*
|
|
9
|
+
* @template T 响应数据类型
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* for await (const result of api.getUser({ pathParams: { id: '1' } })) {
|
|
14
|
+
* if (result.fromCache) {
|
|
15
|
+
* showSkeleton(result.data)
|
|
16
|
+
* } else {
|
|
17
|
+
* renderFull(result.data)
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export interface ApiResult<T> {
|
|
23
|
+
/** 响应数据 */
|
|
24
|
+
data: T;
|
|
25
|
+
/** 是否来自缓存 */
|
|
26
|
+
fromCache: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* API 回调配置
|
|
30
|
+
*
|
|
31
|
+
* 用于 subscribe 安全消费模式,确保回调错误不影响后续响应
|
|
32
|
+
*
|
|
33
|
+
* @template T 响应数据类型
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* await api.getUser({ pathParams: { id: '1' } }).subscribe({
|
|
38
|
+
* onData: (data, fromCache) => {
|
|
39
|
+
* renderUI(data) // 即使这里抛错,网络数据仍会返回
|
|
40
|
+
* },
|
|
41
|
+
* onError: (e) => console.error(e),
|
|
42
|
+
* onComplete: () => console.log('done'),
|
|
43
|
+
* })
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export interface ApiCallback<T> {
|
|
47
|
+
/** 数据回调 (可能多次调用) */
|
|
48
|
+
onData: (data: T, fromCache: boolean) => void;
|
|
49
|
+
/** 错误回调 */
|
|
50
|
+
onError?: (error: Error) => void;
|
|
51
|
+
/** 完成回调 */
|
|
52
|
+
onComplete?: () => void;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=ApiTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiTypes.d.ts","sourceRoot":"","sources":["../../../src/http/models/ApiTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC;IACxB,WAAW;IACX,IAAI,EAAE,CAAC,CAAA;IACP,aAAa;IACb,SAAS,EAAE,OAAO,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC1B,oBAAoB;IACpB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IAC7C,WAAW;IACX,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 缓存配置相关类型
|
|
3
|
+
*/
|
|
4
|
+
import { CacheMode } from './CacheMode';
|
|
5
|
+
/**
|
|
6
|
+
* 缓存 key 计算请求参数
|
|
7
|
+
*
|
|
8
|
+
* 用于自定义缓存 key 生成函数
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* cache: {
|
|
13
|
+
* cacheKey: (req: CacheKeyRequest) => `user:${req.pathParams?.id}`,
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export interface CacheKeyRequest {
|
|
18
|
+
/** 请求方法 */
|
|
19
|
+
method: string;
|
|
20
|
+
/** 请求路径 */
|
|
21
|
+
path: string;
|
|
22
|
+
/** 查询参数 */
|
|
23
|
+
query?: Record<string, unknown>;
|
|
24
|
+
/** 请求体 */
|
|
25
|
+
body?: unknown;
|
|
26
|
+
/** 请求头 */
|
|
27
|
+
headers?: Record<string, string>;
|
|
28
|
+
/** 路径参数 */
|
|
29
|
+
pathParams?: Record<string, string | number>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* 缓存配置
|
|
33
|
+
*
|
|
34
|
+
* 用于配置单个 API 的缓存行为
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* .get<User>('getUser', {
|
|
39
|
+
* path: '/users/{id}',
|
|
40
|
+
* cache: {
|
|
41
|
+
* mode: CacheMode.FirstCache,
|
|
42
|
+
* ttl: 5 * 60 * 1000, // 5 分钟
|
|
43
|
+
* keyHeaders: ['Authorization'],
|
|
44
|
+
* },
|
|
45
|
+
* })
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export interface CacheConfig {
|
|
49
|
+
/** 缓存模式 */
|
|
50
|
+
mode: CacheMode;
|
|
51
|
+
/** 缓存时间 (ms),默认 5 分钟 */
|
|
52
|
+
ttl?: number;
|
|
53
|
+
/** 参与缓存 key 计算的 header 名称 */
|
|
54
|
+
keyHeaders?: string[];
|
|
55
|
+
/** 自定义缓存 key 生成函数 */
|
|
56
|
+
cacheKey?: (request: CacheKeyRequest) => string;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=CacheConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheConfig.d.ts","sourceRoot":"","sources":["../../../src/http/models/CacheConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC5B,WAAW;IACX,MAAM,EAAE,MAAM,CAAA;IACd,WAAW;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,UAAU;IACV,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,UAAU;IACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;CAC/C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,WAAW;IACxB,WAAW;IACX,IAAI,EAAE,SAAS,CAAA;IACf,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,CAAA;CAClD"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 缓存模式枚举
|
|
3
|
+
*
|
|
4
|
+
* 定义了 6 种缓存策略,覆盖各种业务场景
|
|
5
|
+
*/
|
|
6
|
+
export declare enum CacheMode {
|
|
7
|
+
/**
|
|
8
|
+
* 先从本地缓存拿,然后从服务器拿
|
|
9
|
+
* - 可能 yield 两次(先缓存后网络)
|
|
10
|
+
* - 适用于:需要快速展示旧数据,同时更新最新数据
|
|
11
|
+
*/
|
|
12
|
+
FirstCache = "firstCache",
|
|
13
|
+
/**
|
|
14
|
+
* 先从服务器获取,没网络则读缓存
|
|
15
|
+
* - yield 1 次
|
|
16
|
+
* - 适用于:优先保证数据最新,网络异常时降级
|
|
17
|
+
*/
|
|
18
|
+
FirstRemote = "firstRemote",
|
|
19
|
+
/**
|
|
20
|
+
* 只从服务器拿(默认模式)
|
|
21
|
+
* - yield 1 次
|
|
22
|
+
* - 适用于:实时性要求高的数据
|
|
23
|
+
*/
|
|
24
|
+
OnlyRemote = "onlyRemote",
|
|
25
|
+
/**
|
|
26
|
+
* 只从缓存拿
|
|
27
|
+
* - yield 0-1 次(无缓存时不 yield)
|
|
28
|
+
* - 适用于:离线场景、纯本地数据
|
|
29
|
+
*/
|
|
30
|
+
OnlyCache = "onlyCache",
|
|
31
|
+
/**
|
|
32
|
+
* 有缓存返回缓存,否则请求网络
|
|
33
|
+
* - yield 1 次
|
|
34
|
+
* - 适用于:缓存优先,减少网络请求
|
|
35
|
+
*/
|
|
36
|
+
IfCache = "ifCache",
|
|
37
|
+
/**
|
|
38
|
+
* 读上次缓存,后台静默更新
|
|
39
|
+
* - yield 1 次(返回缓存或网络)
|
|
40
|
+
* - 有缓存时后台同步网络但不 yield
|
|
41
|
+
* - 适用于:SWR(stale-while-revalidate)策略
|
|
42
|
+
*/
|
|
43
|
+
LastCache = "lastCache"
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=CacheMode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheMode.d.ts","sourceRoot":"","sources":["../../../src/http/models/CacheMode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,oBAAY,SAAS;IACjB;;;;OAIG;IACH,UAAU,eAAe;IAEzB;;;;OAIG;IACH,WAAW,gBAAgB;IAE3B;;;;OAIG;IACH,UAAU,eAAe;IAEzB;;;;OAIG;IACH,SAAS,cAAc;IAEvB;;;;OAIG;IACH,OAAO,YAAY;IAEnB;;;;;OAKG;IACH,SAAS,cAAc;CAC1B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 缓存模式枚举
|
|
3
|
+
*
|
|
4
|
+
* 定义了 6 种缓存策略,覆盖各种业务场景
|
|
5
|
+
*/
|
|
6
|
+
export var CacheMode;
|
|
7
|
+
(function (CacheMode) {
|
|
8
|
+
/**
|
|
9
|
+
* 先从本地缓存拿,然后从服务器拿
|
|
10
|
+
* - 可能 yield 两次(先缓存后网络)
|
|
11
|
+
* - 适用于:需要快速展示旧数据,同时更新最新数据
|
|
12
|
+
*/
|
|
13
|
+
CacheMode["FirstCache"] = "firstCache";
|
|
14
|
+
/**
|
|
15
|
+
* 先从服务器获取,没网络则读缓存
|
|
16
|
+
* - yield 1 次
|
|
17
|
+
* - 适用于:优先保证数据最新,网络异常时降级
|
|
18
|
+
*/
|
|
19
|
+
CacheMode["FirstRemote"] = "firstRemote";
|
|
20
|
+
/**
|
|
21
|
+
* 只从服务器拿(默认模式)
|
|
22
|
+
* - yield 1 次
|
|
23
|
+
* - 适用于:实时性要求高的数据
|
|
24
|
+
*/
|
|
25
|
+
CacheMode["OnlyRemote"] = "onlyRemote";
|
|
26
|
+
/**
|
|
27
|
+
* 只从缓存拿
|
|
28
|
+
* - yield 0-1 次(无缓存时不 yield)
|
|
29
|
+
* - 适用于:离线场景、纯本地数据
|
|
30
|
+
*/
|
|
31
|
+
CacheMode["OnlyCache"] = "onlyCache";
|
|
32
|
+
/**
|
|
33
|
+
* 有缓存返回缓存,否则请求网络
|
|
34
|
+
* - yield 1 次
|
|
35
|
+
* - 适用于:缓存优先,减少网络请求
|
|
36
|
+
*/
|
|
37
|
+
CacheMode["IfCache"] = "ifCache";
|
|
38
|
+
/**
|
|
39
|
+
* 读上次缓存,后台静默更新
|
|
40
|
+
* - yield 1 次(返回缓存或网络)
|
|
41
|
+
* - 有缓存时后台同步网络但不 yield
|
|
42
|
+
* - 适用于:SWR(stale-while-revalidate)策略
|
|
43
|
+
*/
|
|
44
|
+
CacheMode["LastCache"] = "lastCache";
|
|
45
|
+
})(CacheMode || (CacheMode = {}));
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP 客户端配置
|
|
3
|
+
*/
|
|
4
|
+
import type { CacheConfig } from './CacheConfig';
|
|
5
|
+
import type { CacheInterceptor } from '../interceptor/CacheInterceptor';
|
|
6
|
+
/**
|
|
7
|
+
* HTTP 客户端配置
|
|
8
|
+
*
|
|
9
|
+
* 用于创建 HttpClient 或 ApiBuilder 时的全局配置
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const api = ApiBuilder.create({
|
|
14
|
+
* baseUrl: 'https://api.example.com',
|
|
15
|
+
* timeout: 10000,
|
|
16
|
+
* headers: { 'X-App-Version': '1.0.0' },
|
|
17
|
+
* defaultCache: {
|
|
18
|
+
* mode: CacheMode.FirstRemote,
|
|
19
|
+
* ttl: 5 * 60 * 1000,
|
|
20
|
+
* },
|
|
21
|
+
* cacheInterceptor: (ctx) => ctx.status === 200,
|
|
22
|
+
* })
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export interface HttpClientConfig {
|
|
26
|
+
/** 基础 URL */
|
|
27
|
+
baseUrl: string;
|
|
28
|
+
/** 默认请求头 */
|
|
29
|
+
headers?: Record<string, string>;
|
|
30
|
+
/** 默认超时时间 (ms),默认 30000 */
|
|
31
|
+
timeout?: number;
|
|
32
|
+
/** 默认重试次数,默认 2 */
|
|
33
|
+
retry?: number;
|
|
34
|
+
/** 内存缓存最大条目数,默认 200 */
|
|
35
|
+
memoryCacheMaxSize?: number;
|
|
36
|
+
/** 磁盘缓存最大条目数,默认 1000 */
|
|
37
|
+
diskCacheMaxSize?: number;
|
|
38
|
+
/** IndexedDB 数据库名,默认 'xxf-http-cache' */
|
|
39
|
+
dbName?: string;
|
|
40
|
+
/**
|
|
41
|
+
* 默认参与缓存 key 计算的 header 列表
|
|
42
|
+
*
|
|
43
|
+
* 默认为空数组 `[]`,不包含任何 header。
|
|
44
|
+
*
|
|
45
|
+
* **为什么默认不包含 Authorization?**
|
|
46
|
+
* - Authorization header 通常包含会变化的 token(如 JWT 刷新、时间戳签名)
|
|
47
|
+
* - 如果 token 变化,缓存 key 也会变化,导致缓存失效
|
|
48
|
+
* - 同一用户在同一浏览器中不会共享缓存,无需通过 header 区分用户
|
|
49
|
+
*
|
|
50
|
+
* 如需根据 header 区分缓存,可以:
|
|
51
|
+
* 1. 设置 `defaultKeyHeaders: ['Accept-Language']` 等稳定的 header
|
|
52
|
+
* 2. 使用 `cacheKey` 函数提取 token 中不变的部分(如 userId)
|
|
53
|
+
*/
|
|
54
|
+
defaultKeyHeaders?: string[];
|
|
55
|
+
/**
|
|
56
|
+
* 全局默认缓存配置
|
|
57
|
+
*
|
|
58
|
+
* 如果不设置,默认为 OnlyRemote(不缓存)
|
|
59
|
+
* 单个接口的 cache 配置会覆盖此全局配置
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* defaultCache: {
|
|
64
|
+
* mode: CacheMode.FirstRemote,
|
|
65
|
+
* ttl: 5 * 60 * 1000,
|
|
66
|
+
* }
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
defaultCache?: Partial<CacheConfig>;
|
|
70
|
+
/**
|
|
71
|
+
* 全局缓存拦截器
|
|
72
|
+
*
|
|
73
|
+
* 在响应返回后、写入缓存前调用,用于根据响应内容决定是否缓存。
|
|
74
|
+
* 只有当缓存模式需要写入缓存时才会调用此拦截器。
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```ts
|
|
78
|
+
* // 只缓存 HTTP 200 且业务 code 为 200 的响应
|
|
79
|
+
* cacheInterceptor: (ctx) => {
|
|
80
|
+
* if (ctx.status !== 200) return false
|
|
81
|
+
* const res = ctx.data as { code?: number }
|
|
82
|
+
* return res.code === 200
|
|
83
|
+
* }
|
|
84
|
+
* ```
|
|
85
|
+
*
|
|
86
|
+
* @see CacheInterceptor 查看更多示例
|
|
87
|
+
*/
|
|
88
|
+
cacheInterceptor?: CacheInterceptor;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=HttpClientConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpClientConfig.d.ts","sourceRoot":"","sources":["../../../src/http/models/HttpClientConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAEvE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,gBAAgB;IAC7B,aAAa;IACb,OAAO,EAAE,MAAM,CAAA;IAEf,YAAY;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEhC,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,uBAAuB;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B,wBAAwB;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAE5B;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAEnC;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;CACtC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 请求配置相关类型
|
|
3
|
+
*/
|
|
4
|
+
import type { CacheConfig } from './CacheConfig';
|
|
5
|
+
/**
|
|
6
|
+
* 请求配置
|
|
7
|
+
*
|
|
8
|
+
* 用于定义单个 API 端点的配置
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* .get<User>('getUser', {
|
|
13
|
+
* path: '/users/{id}',
|
|
14
|
+
* headers: { 'Accept': 'application/json' },
|
|
15
|
+
* timeout: 5000,
|
|
16
|
+
* cache: { mode: CacheMode.IfCache, ttl: 60000 },
|
|
17
|
+
* })
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export interface RequestConfig {
|
|
21
|
+
/** 请求方法 */
|
|
22
|
+
method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
23
|
+
/** 请求路径,支持路径参数如 /users/{id} */
|
|
24
|
+
path: string;
|
|
25
|
+
/** 请求头 */
|
|
26
|
+
headers?: Record<string, string>;
|
|
27
|
+
/** 超时时间 (ms) */
|
|
28
|
+
timeout?: number;
|
|
29
|
+
/** 缓存配置 */
|
|
30
|
+
cache?: CacheConfig;
|
|
31
|
+
/** 重试次数 */
|
|
32
|
+
retry?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* API 调用选项
|
|
36
|
+
*
|
|
37
|
+
* 用于调用 API 时传入的运行时参数
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```ts
|
|
41
|
+
* // 完整示例
|
|
42
|
+
* await api.getUser({
|
|
43
|
+
* pathParams: { id: '123' },
|
|
44
|
+
* query: { include: 'profile' },
|
|
45
|
+
* headers: { 'X-Request-Id': 'abc' },
|
|
46
|
+
* cache: { mode: CacheMode.OnlyRemote }, // 本次调用强制不缓存
|
|
47
|
+
* })
|
|
48
|
+
*
|
|
49
|
+
* // POST 请求
|
|
50
|
+
* await api.createUser({
|
|
51
|
+
* body: { name: 'John', email: 'john@example.com' },
|
|
52
|
+
* })
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export interface ApiOptions {
|
|
56
|
+
/** URL 路径参数,用于替换路径中的 {param} */
|
|
57
|
+
pathParams?: Record<string, string | number>;
|
|
58
|
+
/** 查询参数,会自动过滤 undefined 和 null */
|
|
59
|
+
query?: Record<string, string | number | boolean | undefined>;
|
|
60
|
+
/** 请求体(用于 POST/PUT/PATCH) */
|
|
61
|
+
body?: unknown;
|
|
62
|
+
/** 覆盖缓存配置(优先级最高) */
|
|
63
|
+
cache?: Partial<CacheConfig>;
|
|
64
|
+
/** 覆盖请求头 */
|
|
65
|
+
headers?: Record<string, string>;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=RequestConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequestConfig.d.ts","sourceRoot":"","sources":["../../../src/http/models/RequestConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,aAAa;IAC1B,WAAW;IACX,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAA;IACnD,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU;IACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,gBAAgB;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW;IACX,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,UAAU;IACvB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;IAC5C,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;IAC7D,6BAA6B;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,oBAAoB;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAC5B,YAAY;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACnC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP 网络框架类型定义
|
|
3
|
+
*
|
|
4
|
+
* 按功能模块拆分:
|
|
5
|
+
* - CacheMode: 缓存模式枚举
|
|
6
|
+
* - CacheEntry: 缓存条目结构
|
|
7
|
+
* - ApiTypes: API 响应相关类型
|
|
8
|
+
* - CacheConfig: 缓存配置
|
|
9
|
+
* - CacheInterceptor: 缓存拦截器
|
|
10
|
+
* - HttpClientConfig: HTTP 客户端配置
|
|
11
|
+
* - RequestConfig: 请求配置
|
|
12
|
+
* - DiskCacheConfig: 磁盘缓存配置
|
|
13
|
+
* - LruMetadata: LRU 元数据
|
|
14
|
+
*/
|
|
15
|
+
export { CacheMode } from './CacheMode';
|
|
16
|
+
export type { CacheEntry } from '../../cache/CacheEntry';
|
|
17
|
+
export type { ApiResult, ApiCallback } from './ApiTypes';
|
|
18
|
+
export type { CacheConfig, CacheKeyRequest } from './CacheConfig';
|
|
19
|
+
export type { CacheInterceptor, CacheInterceptorContext, CacheInterceptorResult, } from '../interceptor/CacheInterceptor';
|
|
20
|
+
export type { HttpClientConfig } from './HttpClientConfig';
|
|
21
|
+
export type { RequestConfig, ApiOptions } from './RequestConfig';
|
|
22
|
+
export type { DiskLruCacheConfig, HttpCacheConfig } from '../../cache/DiskCacheConfig';
|
|
23
|
+
export type { LruMetadataEntry, LruMetadata } from '../../cache/LruMetadata';
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http/models/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAGxD,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGxD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAGjE,YAAY,EACR,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,GACzB,MAAM,iCAAiC,CAAA;AAGxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAG1D,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAGhE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAGtF,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP 网络框架类型定义
|
|
3
|
+
*
|
|
4
|
+
* 按功能模块拆分:
|
|
5
|
+
* - CacheMode: 缓存模式枚举
|
|
6
|
+
* - CacheEntry: 缓存条目结构
|
|
7
|
+
* - ApiTypes: API 响应相关类型
|
|
8
|
+
* - CacheConfig: 缓存配置
|
|
9
|
+
* - CacheInterceptor: 缓存拦截器
|
|
10
|
+
* - HttpClientConfig: HTTP 客户端配置
|
|
11
|
+
* - RequestConfig: 请求配置
|
|
12
|
+
* - DiskCacheConfig: 磁盘缓存配置
|
|
13
|
+
* - LruMetadata: LRU 元数据
|
|
14
|
+
*/
|
|
15
|
+
// 缓存模式
|
|
16
|
+
export { CacheMode } from './CacheMode';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP 网络框架类型定义
|
|
3
|
+
*
|
|
4
|
+
* 统一导出入口,保持向后兼容
|
|
5
|
+
* 实际类型定义在 models/ 目录下按功能拆分
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { CacheMode, type HttpClientConfig } from 'xxf_react/http'
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export { CacheMode, type CacheEntry, type ApiResult, type ApiCallback, type CacheConfig, type CacheKeyRequest, type CacheInterceptor, type CacheInterceptorContext, type CacheInterceptorResult, type HttpClientConfig, type RequestConfig, type ApiOptions, type DiskLruCacheConfig, type HttpCacheConfig, type LruMetadataEntry, type LruMetadata, } from './models';
|
|
13
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAEH,SAAS,EAET,KAAK,UAAU,EAEf,KAAK,SAAS,EACd,KAAK,WAAW,EAEhB,KAAK,WAAW,EAChB,KAAK,eAAe,EAEpB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAE3B,KAAK,gBAAgB,EAErB,KAAK,aAAa,EAClB,KAAK,UAAU,EAEf,KAAK,kBAAkB,EACvB,KAAK,eAAe,EAEpB,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACnB,MAAM,UAAU,CAAA"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from './sse';
|
|
2
|
+
export * from './fetch';
|
|
3
|
+
export * from './utils';
|
|
4
|
+
export * from './refresh';
|
|
5
|
+
export * from './models';
|
|
6
|
+
export * from './media';
|
|
7
|
+
export * from './flow';
|
|
8
|
+
export * from './responsive';
|
|
9
|
+
export * from './foundation';
|
|
10
|
+
export * from './layout';
|
|
11
|
+
export * from './event-bus';
|
|
12
|
+
export * from './cache';
|
|
13
|
+
export * from './http';
|
|
14
|
+
export declare function initXXF(): void;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AAGvB,wBAAgB,OAAO,SAGtB"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { initPromiseErrorExtension } from "./flow/PromiseExt";
|
|
2
|
+
import { extendVideoElement } from "./media";
|
|
3
|
+
export * from './sse';
|
|
4
|
+
export * from './fetch';
|
|
5
|
+
export * from './utils';
|
|
6
|
+
export * from './refresh';
|
|
7
|
+
export * from './models';
|
|
8
|
+
export * from './media';
|
|
9
|
+
export * from './flow';
|
|
10
|
+
export * from './responsive';
|
|
11
|
+
export * from './foundation';
|
|
12
|
+
export * from './layout';
|
|
13
|
+
export * from './event-bus';
|
|
14
|
+
export * from './cache';
|
|
15
|
+
export * from './http';
|
|
16
|
+
///框架初始化函数,调用后会初始化一些全局功能
|
|
17
|
+
export function initXXF() {
|
|
18
|
+
initPromiseErrorExtension();
|
|
19
|
+
extendVideoElement();
|
|
20
|
+
}
|