@vlian/framework 1.2.19 → 1.2.37

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.
Files changed (252) hide show
  1. package/dist/analytics.umd.js +208 -2395
  2. package/dist/analytics.umd.js.map +1 -1
  3. package/dist/core/error/ErrorHandler.cjs.map +1 -1
  4. package/dist/core/error/ErrorHandler.d.ts +1 -1
  5. package/dist/core/error/ErrorHandler.js.map +1 -1
  6. package/dist/core/index.cjs +0 -1
  7. package/dist/core/index.cjs.map +1 -1
  8. package/dist/core/index.d.ts +1 -2
  9. package/dist/core/index.js +0 -1
  10. package/dist/core/index.js.map +1 -1
  11. package/dist/core/initialization/index.cjs.map +1 -1
  12. package/dist/core/initialization/index.d.ts +1 -1
  13. package/dist/core/initialization/index.js.map +1 -1
  14. package/dist/core/initialization/initialization.cjs +2 -147
  15. package/dist/core/initialization/initialization.cjs.map +1 -1
  16. package/dist/core/initialization/initialization.d.ts +0 -57
  17. package/dist/core/initialization/initialization.js +2 -148
  18. package/dist/core/initialization/initialization.js.map +1 -1
  19. package/dist/core/kernel/startKernel.cjs +1 -2
  20. package/dist/core/kernel/startKernel.cjs.map +1 -1
  21. package/dist/core/kernel/startKernel.js +1 -2
  22. package/dist/core/kernel/startKernel.js.map +1 -1
  23. package/dist/core/plugin.cjs +16 -16
  24. package/dist/core/plugin.cjs.map +1 -1
  25. package/dist/core/plugin.d.ts +5 -1
  26. package/dist/core/plugin.js +17 -17
  27. package/dist/core/plugin.js.map +1 -1
  28. package/dist/core/router/monitoring/RouterMonitoring.cjs +1 -1
  29. package/dist/core/router/monitoring/RouterMonitoring.cjs.map +1 -1
  30. package/dist/core/router/monitoring/RouterMonitoring.js +1 -1
  31. package/dist/core/router/monitoring/RouterMonitoring.js.map +1 -1
  32. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs +13 -8
  33. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs.map +1 -1
  34. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js +13 -8
  35. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js.map +1 -1
  36. package/dist/core/router/utils/adapters/react-router/transform.cjs +4 -0
  37. package/dist/core/router/utils/adapters/react-router/transform.cjs.map +1 -1
  38. package/dist/core/router/utils/adapters/react-router/transform.js +4 -0
  39. package/dist/core/router/utils/adapters/react-router/transform.js.map +1 -1
  40. package/dist/core/startup/initializeServices.cjs +1 -1
  41. package/dist/core/startup/initializeServices.cjs.map +1 -1
  42. package/dist/core/startup/initializeServices.d.ts +1 -1
  43. package/dist/core/startup/initializeServices.js +1 -1
  44. package/dist/core/startup/initializeServices.js.map +1 -1
  45. package/dist/core/startup/performanceTracker.cjs.map +1 -1
  46. package/dist/core/startup/performanceTracker.d.ts +1 -1
  47. package/dist/core/startup/performanceTracker.js.map +1 -1
  48. package/dist/core/startup/renderApp.cjs +1 -1
  49. package/dist/core/startup/renderApp.cjs.map +1 -1
  50. package/dist/core/startup/renderApp.d.ts +1 -1
  51. package/dist/core/startup/renderApp.js +1 -1
  52. package/dist/core/startup/renderApp.js.map +1 -1
  53. package/dist/core/startup/startApp.cjs +2 -4
  54. package/dist/core/startup/startApp.cjs.map +1 -1
  55. package/dist/core/startup/startApp.js +3 -5
  56. package/dist/core/startup/startApp.js.map +1 -1
  57. package/dist/core/types.d.ts +2 -6
  58. package/dist/core/types.js.map +1 -1
  59. package/dist/index.cjs +15 -2
  60. package/dist/index.cjs.map +1 -1
  61. package/dist/index.d.ts +6 -4
  62. package/dist/index.js +5 -4
  63. package/dist/index.js.map +1 -1
  64. package/dist/index.umd.js +11758 -32895
  65. package/dist/index.umd.js.map +1 -1
  66. package/dist/kernel/constants.cjs +67 -0
  67. package/dist/kernel/constants.cjs.map +1 -0
  68. package/dist/kernel/constants.d.ts +5 -0
  69. package/dist/kernel/constants.js +43 -0
  70. package/dist/kernel/constants.js.map +1 -0
  71. package/dist/kernel/index.cjs +40 -0
  72. package/dist/kernel/index.cjs.map +1 -0
  73. package/dist/kernel/index.d.ts +3 -0
  74. package/dist/kernel/index.js +4 -0
  75. package/dist/kernel/index.js.map +1 -0
  76. package/dist/kernel/kernel.cjs +296 -0
  77. package/dist/kernel/kernel.cjs.map +1 -0
  78. package/dist/kernel/kernel.d.ts +40 -0
  79. package/dist/kernel/kernel.js +272 -0
  80. package/dist/kernel/kernel.js.map +1 -0
  81. package/dist/kernel/manager/cacheManager.cjs +46 -0
  82. package/dist/kernel/manager/cacheManager.cjs.map +1 -0
  83. package/dist/kernel/manager/cacheManager.d.ts +6 -0
  84. package/dist/kernel/manager/cacheManager.js +36 -0
  85. package/dist/kernel/manager/cacheManager.js.map +1 -0
  86. package/dist/kernel/manager/i18nManager.cjs +68 -0
  87. package/dist/kernel/manager/i18nManager.cjs.map +1 -0
  88. package/dist/kernel/manager/i18nManager.d.ts +8 -0
  89. package/dist/kernel/manager/i18nManager.js +58 -0
  90. package/dist/kernel/manager/i18nManager.js.map +1 -0
  91. package/dist/kernel/manager/index.cjs +30 -0
  92. package/dist/kernel/manager/index.cjs.map +1 -0
  93. package/dist/kernel/manager/index.d.ts +4 -0
  94. package/dist/kernel/manager/index.js +6 -0
  95. package/dist/kernel/manager/index.js.map +1 -0
  96. package/dist/kernel/manager/loggerManager.cjs +70 -0
  97. package/dist/kernel/manager/loggerManager.cjs.map +1 -0
  98. package/dist/kernel/manager/loggerManager.d.ts +14 -0
  99. package/dist/kernel/manager/loggerManager.js +60 -0
  100. package/dist/kernel/manager/loggerManager.js.map +1 -0
  101. package/dist/kernel/manager/persistence.cjs +93 -0
  102. package/dist/kernel/manager/persistence.cjs.map +1 -0
  103. package/dist/kernel/manager/persistence.d.ts +3 -0
  104. package/dist/kernel/manager/persistence.js +75 -0
  105. package/dist/kernel/manager/persistence.js.map +1 -0
  106. package/dist/kernel/manager/themeManager.cjs +85 -0
  107. package/dist/kernel/manager/themeManager.cjs.map +1 -0
  108. package/dist/kernel/manager/themeManager.d.ts +9 -0
  109. package/dist/kernel/manager/themeManager.js +75 -0
  110. package/dist/kernel/manager/themeManager.js.map +1 -0
  111. package/dist/kernel/types.cjs.map +1 -0
  112. package/dist/kernel/types.d.ts +72 -0
  113. package/dist/kernel/types.js.map +1 -0
  114. package/dist/library/storage/index.cjs +1 -1
  115. package/dist/library/storage/index.cjs.map +1 -1
  116. package/dist/library/storage/index.d.ts +1 -0
  117. package/dist/library/storage/index.js +1 -1
  118. package/dist/library/storage/index.js.map +1 -1
  119. package/dist/request/adapter.d.ts +1 -0
  120. package/dist/request/core.d.ts +1 -0
  121. package/dist/request/index.d.ts +1 -42
  122. package/dist/request/plugin/csrfPlugin.d.ts +2 -2
  123. package/dist/request/plugin/queue.d.ts +2 -2
  124. package/dist/request/plugin.d.ts +1 -0
  125. package/dist/request/runtime.d.ts +1 -0
  126. package/dist/request/types.d.ts +1 -394
  127. package/dist/request/utils.d.ts +1 -0
  128. package/dist/state.umd.js +1 -1
  129. package/dist/utils/csrf.cjs +13 -152
  130. package/dist/utils/csrf.cjs.map +1 -1
  131. package/dist/utils/csrf.d.ts +1 -72
  132. package/dist/utils/csrf.js +1 -142
  133. package/dist/utils/csrf.js.map +1 -1
  134. package/dist/utils/errors/ErrorCodes.cjs +6 -76
  135. package/dist/utils/errors/ErrorCodes.cjs.map +1 -1
  136. package/dist/utils/errors/ErrorCodes.d.ts +1 -45
  137. package/dist/utils/errors/ErrorCodes.js +1 -84
  138. package/dist/utils/errors/ErrorCodes.js.map +1 -1
  139. package/dist/utils/errors.cjs +15 -344
  140. package/dist/utils/errors.cjs.map +1 -1
  141. package/dist/utils/errors.d.ts +1 -183
  142. package/dist/utils/errors.js +1 -352
  143. package/dist/utils/errors.js.map +1 -1
  144. package/dist/utils/logger.cjs +5 -374
  145. package/dist/utils/logger.cjs.map +1 -1
  146. package/dist/utils/logger.d.ts +2 -189
  147. package/dist/utils/logger.js +1 -379
  148. package/dist/utils/logger.js.map +1 -1
  149. package/dist/utils/logger.types.cjs +3 -12
  150. package/dist/utils/logger.types.cjs.map +1 -1
  151. package/dist/utils/logger.types.d.ts +2 -57
  152. package/dist/utils/logger.types.js +1 -10
  153. package/dist/utils/logger.types.js.map +1 -1
  154. package/dist/utils/monitoring.cjs +11 -302
  155. package/dist/utils/monitoring.cjs.map +1 -1
  156. package/dist/utils/monitoring.d.ts +1 -163
  157. package/dist/utils/monitoring.js +1 -294
  158. package/dist/utils/monitoring.js.map +1 -1
  159. package/dist/utils/performance.cjs +5 -352
  160. package/dist/utils/performance.cjs.map +1 -1
  161. package/dist/utils/performance.d.ts +2 -246
  162. package/dist/utils/performance.js +1 -354
  163. package/dist/utils/performance.js.map +1 -1
  164. package/dist/utils/resourceLoader.cjs +5 -303
  165. package/dist/utils/resourceLoader.cjs.map +1 -1
  166. package/dist/utils/resourceLoader.d.ts +2 -130
  167. package/dist/utils/resourceLoader.js +1 -305
  168. package/dist/utils/resourceLoader.js.map +1 -1
  169. package/dist/utils/runtimeSecurity.cjs +2 -140
  170. package/dist/utils/runtimeSecurity.cjs.map +1 -1
  171. package/dist/utils/runtimeSecurity.d.ts +2 -104
  172. package/dist/utils/runtimeSecurity.js +1 -141
  173. package/dist/utils/runtimeSecurity.js.map +1 -1
  174. package/dist/utils/security.cjs +3 -314
  175. package/dist/utils/security.cjs.map +1 -1
  176. package/dist/utils/security.d.ts +2 -80
  177. package/dist/utils/security.js +1 -311
  178. package/dist/utils/security.js.map +1 -1
  179. package/dist/utils/traceId.cjs +10 -111
  180. package/dist/utils/traceId.cjs.map +1 -1
  181. package/dist/utils/traceId.d.ts +1 -63
  182. package/dist/utils/traceId.js +1 -116
  183. package/dist/utils/traceId.js.map +1 -1
  184. package/dist/utils/validation.cjs +3 -173
  185. package/dist/utils/validation.cjs.map +1 -1
  186. package/dist/utils/validation.d.ts +2 -110
  187. package/dist/utils/validation.js +1 -175
  188. package/dist/utils/validation.js.map +1 -1
  189. package/package.json +98 -13
  190. package/dist/core/ui-adapter/adapters.cjs +0 -45
  191. package/dist/core/ui-adapter/adapters.cjs.map +0 -1
  192. package/dist/core/ui-adapter/adapters.d.ts +0 -4
  193. package/dist/core/ui-adapter/adapters.js +0 -27
  194. package/dist/core/ui-adapter/adapters.js.map +0 -1
  195. package/dist/core/ui-adapter/index.cjs +0 -21
  196. package/dist/core/ui-adapter/index.cjs.map +0 -1
  197. package/dist/core/ui-adapter/index.d.ts +0 -2
  198. package/dist/core/ui-adapter/index.js +0 -3
  199. package/dist/core/ui-adapter/index.js.map +0 -1
  200. package/dist/core/ui-adapter/types.cjs.map +0 -1
  201. package/dist/core/ui-adapter/types.d.ts +0 -24
  202. package/dist/core/ui-adapter/types.js.map +0 -1
  203. package/dist/request/adapter/RequestAdapter.cjs +0 -78
  204. package/dist/request/adapter/RequestAdapter.cjs.map +0 -1
  205. package/dist/request/adapter/axiosAdapter.cjs +0 -164
  206. package/dist/request/adapter/axiosAdapter.cjs.map +0 -1
  207. package/dist/request/adapter/fetchAdapter.cjs +0 -134
  208. package/dist/request/adapter/fetchAdapter.cjs.map +0 -1
  209. package/dist/request/adapter/index.cjs +0 -80
  210. package/dist/request/adapter/index.cjs.map +0 -1
  211. package/dist/request/adapter/kyAdapter.cjs +0 -191
  212. package/dist/request/adapter/kyAdapter.cjs.map +0 -1
  213. package/dist/request/adapter/undiciAdapter.cjs +0 -213
  214. package/dist/request/adapter/undiciAdapter.cjs.map +0 -1
  215. package/dist/request/core/RequestClient.cjs +0 -558
  216. package/dist/request/core/RequestClient.cjs.map +0 -1
  217. package/dist/request/core/index.cjs +0 -15
  218. package/dist/request/core/index.cjs.map +0 -1
  219. package/dist/request/index.cjs +0 -149
  220. package/dist/request/index.cjs.map +0 -1
  221. package/dist/request/plugin/RequestPlugin.cjs +0 -218
  222. package/dist/request/plugin/RequestPlugin.cjs.map +0 -1
  223. package/dist/request/plugin/cache.cjs +0 -269
  224. package/dist/request/plugin/cache.cjs.map +0 -1
  225. package/dist/request/plugin/csrfPlugin.cjs +0 -40
  226. package/dist/request/plugin/csrfPlugin.cjs.map +0 -1
  227. package/dist/request/plugin/index.cjs +0 -53
  228. package/dist/request/plugin/index.cjs.map +0 -1
  229. package/dist/request/plugin/monitoring.cjs +0 -216
  230. package/dist/request/plugin/monitoring.cjs.map +0 -1
  231. package/dist/request/plugin/queue.cjs +0 -140
  232. package/dist/request/plugin/queue.cjs.map +0 -1
  233. package/dist/request/plugin/retry.cjs +0 -98
  234. package/dist/request/plugin/retry.cjs.map +0 -1
  235. package/dist/request/plugin/validation.cjs +0 -121
  236. package/dist/request/plugin/validation.cjs.map +0 -1
  237. package/dist/request/runtime/RequestContext.cjs +0 -77
  238. package/dist/request/runtime/RequestContext.cjs.map +0 -1
  239. package/dist/request/runtime/index.cjs +0 -32
  240. package/dist/request/runtime/index.cjs.map +0 -1
  241. package/dist/request/types.cjs +0 -112
  242. package/dist/request/types.cjs.map +0 -1
  243. package/dist/request/utils/RequestQueueManager.cjs +0 -168
  244. package/dist/request/utils/RequestQueueManager.cjs.map +0 -1
  245. package/dist/request/utils/dependencyCheck.cjs +0 -237
  246. package/dist/request/utils/dependencyCheck.cjs.map +0 -1
  247. package/dist/request/utils/index.cjs +0 -30
  248. package/dist/request/utils/index.cjs.map +0 -1
  249. package/dist/request.umd.js +0 -5392
  250. package/dist/request.umd.js.map +0 -1
  251. /package/dist/{core/ui-adapter → kernel}/types.cjs +0 -0
  252. /package/dist/{core/ui-adapter → kernel}/types.js +0 -0
@@ -1,134 +0,0 @@
1
- /**
2
- * Fetch 适配器
3
- *
4
- * 基于原生 fetch API 的适配器实现
5
- */ "use strict";
6
- Object.defineProperty(exports, "__esModule", {
7
- value: true
8
- });
9
- Object.defineProperty(exports, "fetchAdapter", {
10
- enumerable: true,
11
- get: function() {
12
- return fetchAdapter;
13
- }
14
- });
15
- async function fetchAdapter() {
16
- if (typeof fetch === 'undefined') {
17
- throw new Error('fetch API 不可用');
18
- }
19
- return {
20
- name: 'fetch',
21
- capabilities: {
22
- supportsAbort: true,
23
- supportsTimeout: true,
24
- supportsProgress: false,
25
- supportsInterceptors: false
26
- },
27
- async request (options) {
28
- const { url, method = 'GET', headers = {}, query, body, timeout, signal, credentials } = options;
29
- // 构建完整 URL
30
- let fullUrl = url;
31
- if (query) {
32
- const searchParams = new URLSearchParams();
33
- for (const [key, value] of Object.entries(query)){
34
- if (value !== null && value !== undefined) {
35
- searchParams.append(key, String(value));
36
- }
37
- }
38
- const queryString = searchParams.toString();
39
- if (queryString) {
40
- fullUrl += (fullUrl.includes('?') ? '&' : '?') + queryString;
41
- }
42
- }
43
- // 构建请求头
44
- const requestHeaders = {};
45
- for (const [key, value] of Object.entries(headers)){
46
- requestHeaders[key] = String(value);
47
- }
48
- // 构建请求体
49
- let requestBody;
50
- if (body !== undefined && body !== null) {
51
- if (typeof body === 'string' || body instanceof FormData || body instanceof URLSearchParams || body instanceof Blob || body instanceof ArrayBuffer) {
52
- requestBody = body;
53
- } else {
54
- // 对象转换为 JSON
55
- requestHeaders['Content-Type'] = requestHeaders['Content-Type'] || 'application/json';
56
- requestBody = JSON.stringify(body);
57
- }
58
- }
59
- // 创建中止控制器(如果支持超时)
60
- let abortController;
61
- let timeoutId;
62
- if (timeout && timeout > 0) {
63
- abortController = new AbortController();
64
- timeoutId = setTimeout(()=>{
65
- abortController.abort();
66
- }, timeout);
67
- }
68
- // 合并中止信号
69
- const abortSignal = signal || abortController?.signal;
70
- try {
71
- // 执行请求
72
- const fetchResponse = await fetch(fullUrl, {
73
- method,
74
- headers: requestHeaders,
75
- body: requestBody,
76
- signal: abortSignal,
77
- credentials: credentials || 'same-origin'
78
- });
79
- // 解析响应数据
80
- let data;
81
- const responseType = options.responseType || 'json';
82
- switch(responseType){
83
- case 'text':
84
- data = await fetchResponse.text();
85
- break;
86
- case 'blob':
87
- data = await fetchResponse.blob();
88
- break;
89
- case 'arrayBuffer':
90
- data = await fetchResponse.arrayBuffer();
91
- break;
92
- case 'formData':
93
- data = await fetchResponse.formData();
94
- break;
95
- case 'json':
96
- default:
97
- try {
98
- data = await fetchResponse.json();
99
- } catch {
100
- // 如果 JSON 解析失败,返回空对象
101
- data = {};
102
- }
103
- break;
104
- }
105
- // 构建响应头对象
106
- const responseHeaders = {};
107
- fetchResponse.headers.forEach((value, key)=>{
108
- responseHeaders[key] = value;
109
- });
110
- // 检查 HTTP 状态码
111
- if (!fetchResponse.ok) {
112
- throw new Error(`HTTP ${fetchResponse.status} ${fetchResponse.statusText}`);
113
- }
114
- // 返回响应对象
115
- return {
116
- data,
117
- status: fetchResponse.status,
118
- statusText: fetchResponse.statusText,
119
- headers: responseHeaders,
120
- raw: fetchResponse
121
- };
122
- } catch (error) {
123
- // 清理超时定时器
124
- if (timeoutId) {
125
- clearTimeout(timeoutId);
126
- }
127
- // 重新抛出错误
128
- throw error;
129
- }
130
- }
131
- };
132
- }
133
-
134
- //# sourceMappingURL=fetchAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/request/adapter/fetchAdapter.ts"],"sourcesContent":["/**\n * Fetch 适配器\n * \n * 基于原生 fetch API 的适配器实现\n */\n\nimport type { RequestAdapter } from './RequestAdapter';\nimport type { RequestOptions, Response } from '../types';\n\n/**\n * 创建 Fetch 适配器\n */\nexport async function fetchAdapter(): Promise<RequestAdapter> {\n if (typeof fetch === 'undefined') {\n throw new Error('fetch API 不可用');\n }\n\n return {\n name: 'fetch',\n capabilities: {\n supportsAbort: true,\n supportsTimeout: true,\n supportsProgress: false,\n supportsInterceptors: false,\n },\n\n async request<TResponse = unknown>(options: RequestOptions<TResponse>): Promise<Response<TResponse>> {\n const { url, method = 'GET', headers = {}, query, body, timeout, signal, credentials } = options;\n\n // 构建完整 URL\n let fullUrl = url;\n if (query) {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) {\n if (value !== null && value !== undefined) {\n searchParams.append(key, String(value));\n }\n }\n const queryString = searchParams.toString();\n if (queryString) {\n fullUrl += (fullUrl.includes('?') ? '&' : '?') + queryString;\n }\n }\n\n // 构建请求头\n const requestHeaders: HeadersInit = {};\n for (const [key, value] of Object.entries(headers)) {\n requestHeaders[key] = String(value);\n }\n\n // 构建请求体\n let requestBody: BodyInit | undefined;\n if (body !== undefined && body !== null) {\n if (typeof body === 'string' || body instanceof FormData || body instanceof URLSearchParams || body instanceof Blob || body instanceof ArrayBuffer) {\n requestBody = body;\n } else {\n // 对象转换为 JSON\n requestHeaders['Content-Type'] = requestHeaders['Content-Type'] || 'application/json';\n requestBody = JSON.stringify(body);\n }\n }\n\n // 创建中止控制器(如果支持超时)\n let abortController: AbortController | undefined;\n let timeoutId: NodeJS.Timeout | undefined;\n\n if (timeout && timeout > 0) {\n abortController = new AbortController();\n timeoutId = setTimeout(() => {\n abortController!.abort();\n }, timeout);\n }\n\n // 合并中止信号\n const abortSignal = signal || abortController?.signal;\n\n try {\n // 执行请求\n const fetchResponse = await fetch(fullUrl, {\n method,\n headers: requestHeaders,\n body: requestBody,\n signal: abortSignal,\n credentials: credentials || 'same-origin',\n });\n\n // 解析响应数据\n let data: TResponse;\n const responseType = options.responseType || 'json';\n\n switch (responseType) {\n case 'text':\n data = (await fetchResponse.text()) as TResponse;\n break;\n case 'blob':\n data = (await fetchResponse.blob()) as TResponse;\n break;\n case 'arrayBuffer':\n data = (await fetchResponse.arrayBuffer()) as TResponse;\n break;\n case 'formData':\n data = (await fetchResponse.formData()) as TResponse;\n break;\n case 'json':\n default:\n try {\n data = await fetchResponse.json() as TResponse;\n } catch {\n // 如果 JSON 解析失败,返回空对象\n data = {} as TResponse;\n }\n break;\n }\n\n // 构建响应头对象\n const responseHeaders: Record<string, string> = {};\n fetchResponse.headers.forEach((value, key) => {\n responseHeaders[key] = value;\n });\n\n // 检查 HTTP 状态码\n if (!fetchResponse.ok) {\n throw new Error(`HTTP ${fetchResponse.status} ${fetchResponse.statusText}`);\n }\n\n // 返回响应对象\n return {\n data,\n status: fetchResponse.status,\n statusText: fetchResponse.statusText,\n headers: responseHeaders,\n raw: fetchResponse,\n };\n } catch (error) {\n // 清理超时定时器\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n\n // 重新抛出错误\n throw error;\n }\n },\n };\n}\n"],"names":["fetchAdapter","fetch","Error","name","capabilities","supportsAbort","supportsTimeout","supportsProgress","supportsInterceptors","request","options","url","method","headers","query","body","timeout","signal","credentials","fullUrl","searchParams","URLSearchParams","key","value","Object","entries","undefined","append","String","queryString","toString","includes","requestHeaders","requestBody","FormData","Blob","ArrayBuffer","JSON","stringify","abortController","timeoutId","AbortController","setTimeout","abort","abortSignal","fetchResponse","data","responseType","text","blob","arrayBuffer","formData","json","responseHeaders","forEach","ok","status","statusText","raw","error","clearTimeout"],"mappings":"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"}
@@ -1,80 +0,0 @@
1
- /**
2
- * 适配器模块导出
3
- */ "use strict";
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- function _export(target, all) {
8
- for(var name in all)Object.defineProperty(target, name, {
9
- enumerable: true,
10
- get: Object.getOwnPropertyDescriptor(all, name).get
11
- });
12
- }
13
- _export(exports, {
14
- get adapterRegistry () {
15
- return _RequestAdapter.adapterRegistry;
16
- },
17
- get axiosAdapter () {
18
- return _axiosAdapter.axiosAdapter;
19
- },
20
- get fetchAdapter () {
21
- return _fetchAdapter.fetchAdapter;
22
- },
23
- get kyAdapter () {
24
- return _kyAdapter.kyAdapter;
25
- },
26
- get undiciAdapter () {
27
- return undiciAdapter;
28
- }
29
- });
30
- const _RequestAdapter = require("./RequestAdapter");
31
- const _fetchAdapter = require("./fetchAdapter");
32
- const _kyAdapter = require("./kyAdapter");
33
- const _axiosAdapter = require("./axiosAdapter");
34
- function _getRequireWildcardCache(nodeInterop) {
35
- if (typeof WeakMap !== "function") return null;
36
- var cacheBabelInterop = new WeakMap();
37
- var cacheNodeInterop = new WeakMap();
38
- return (_getRequireWildcardCache = function(nodeInterop) {
39
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
40
- })(nodeInterop);
41
- }
42
- function _interop_require_wildcard(obj, nodeInterop) {
43
- if (!nodeInterop && obj && obj.__esModule) {
44
- return obj;
45
- }
46
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
47
- return {
48
- default: obj
49
- };
50
- }
51
- var cache = _getRequireWildcardCache(nodeInterop);
52
- if (cache && cache.has(obj)) {
53
- return cache.get(obj);
54
- }
55
- var newObj = {
56
- __proto__: null
57
- };
58
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
59
- for(var key in obj){
60
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
61
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
62
- if (desc && (desc.get || desc.set)) {
63
- Object.defineProperty(newObj, key, desc);
64
- } else {
65
- newObj[key] = obj[key];
66
- }
67
- }
68
- }
69
- newObj.default = obj;
70
- if (cache) {
71
- cache.set(obj, newObj);
72
- }
73
- return newObj;
74
- }
75
- async function undiciAdapter() {
76
- const { undiciAdapter: adapter } = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./undiciAdapter")));
77
- return adapter();
78
- }
79
-
80
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/request/adapter/index.ts"],"sourcesContent":["/**\n * 适配器模块导出\n */\n\nexport type { RequestAdapter, AdapterFactory } from './RequestAdapter';\nexport { adapterRegistry } from './RequestAdapter';\n\n// 导出适配器工厂函数(按需加载)\nexport { fetchAdapter } from './fetchAdapter';\nexport { kyAdapter } from './kyAdapter';\nexport { axiosAdapter } from './axiosAdapter';\n\n// undiciAdapter 使用懒加载,避免在未使用时触发依赖检查\nexport async function undiciAdapter() {\n const { undiciAdapter: adapter } = await import('./undiciAdapter');\n return adapter();\n}\n"],"names":["adapterRegistry","axiosAdapter","fetchAdapter","kyAdapter","undiciAdapter","adapter"],"mappings":"AAAA;;CAEC;;;;;;;;;;;QAGQA;eAAAA,+BAAe;;QAKfC;eAAAA,0BAAY;;QAFZC;eAAAA,0BAAY;;QACZC;eAAAA,oBAAS;;QAIIC;eAAAA;;;gCARU;8BAGH;2BACH;8BACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGtB,eAAeA;IACpB,MAAM,EAAEA,eAAeC,OAAO,EAAE,GAAG,MAAM,mEAAA,QAAO;IAChD,OAAOA;AACT"}
@@ -1,191 +0,0 @@
1
- /**
2
- * Ky 适配器
3
- *
4
- * 基于 ky 库的适配器实现(浏览器环境)
5
- */ "use strict";
6
- Object.defineProperty(exports, "__esModule", {
7
- value: true
8
- });
9
- Object.defineProperty(exports, "kyAdapter", {
10
- enumerable: true,
11
- get: function() {
12
- return kyAdapter;
13
- }
14
- });
15
- function _getRequireWildcardCache(nodeInterop) {
16
- if (typeof WeakMap !== "function") return null;
17
- var cacheBabelInterop = new WeakMap();
18
- var cacheNodeInterop = new WeakMap();
19
- return (_getRequireWildcardCache = function(nodeInterop) {
20
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
21
- })(nodeInterop);
22
- }
23
- function _interop_require_wildcard(obj, nodeInterop) {
24
- if (!nodeInterop && obj && obj.__esModule) {
25
- return obj;
26
- }
27
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
28
- return {
29
- default: obj
30
- };
31
- }
32
- var cache = _getRequireWildcardCache(nodeInterop);
33
- if (cache && cache.has(obj)) {
34
- return cache.get(obj);
35
- }
36
- var newObj = {
37
- __proto__: null
38
- };
39
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
40
- for(var key in obj){
41
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
42
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
43
- if (desc && (desc.get || desc.set)) {
44
- Object.defineProperty(newObj, key, desc);
45
- } else {
46
- newObj[key] = obj[key];
47
- }
48
- }
49
- }
50
- newObj.default = obj;
51
- if (cache) {
52
- cache.set(obj, newObj);
53
- }
54
- return newObj;
55
- }
56
- async function kyAdapter() {
57
- // 动态导入 ky(按需加载)
58
- // 使用多种方式尝试导入,以兼容不同的构建工具
59
- let ky;
60
- let importError = null;
61
- // 方法1:使用 Function 构造函数(避免构建时解析)
62
- try {
63
- // @ts-ignore - ky 是可选依赖
64
- ky = await new Function('return import("ky")')();
65
- } catch (error) {
66
- importError = error;
67
- // 方法2:直接使用动态导入(某些构建工具可能需要这种方式)
68
- try {
69
- // @ts-ignore - ky 是可选依赖
70
- ky = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("ky")));
71
- } catch (error2) {
72
- importError = error2;
73
- }
74
- }
75
- // 如果两种方法都失败,检查是否是模块未找到错误
76
- if (!ky || !ky.default) {
77
- if (importError instanceof Error) {
78
- const errorMessage = importError.message.toLowerCase();
79
- // 检查是否是模块未找到相关的错误
80
- const isModuleNotFound = errorMessage.includes('cannot find module') || errorMessage.includes('cannot resolve') || errorMessage.includes('module not found') || errorMessage.includes('failed to resolve') || errorMessage.includes('does not exist') || errorMessage.includes('failed to fetch dynamically imported module') || errorMessage.includes('loading chunk') || errorMessage.includes('networkerror') || errorMessage.includes('ky') && (errorMessage.includes('resolve') || errorMessage.includes('find') || errorMessage.includes('not found'));
81
- if (isModuleNotFound) {
82
- // 模块未找到,抛出友好的依赖缺失错误
83
- const { createDependencyError } = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../utils/dependencyCheck")));
84
- const errorMessage = createDependencyError('ky', {
85
- adapterName: 'ky',
86
- environment: 'browser'
87
- });
88
- throw new Error(errorMessage);
89
- }
90
- }
91
- throw new Error('ky 库导入失败,请检查安装是否正确');
92
- }
93
- const kyInstance = ky.default;
94
- return {
95
- name: 'ky',
96
- capabilities: {
97
- supportsAbort: true,
98
- supportsTimeout: true,
99
- supportsProgress: false,
100
- supportsInterceptors: false
101
- },
102
- async request (options) {
103
- const { url, method = 'GET', headers = {}, query, body, timeout, signal, credentials } = options;
104
- // 构建 ky 选项
105
- const kyOptions = {
106
- method: method,
107
- headers: headers,
108
- searchParams: query,
109
- json: typeof body === 'object' && body !== null && !(body instanceof FormData) ? body : undefined,
110
- body: body instanceof FormData || body instanceof URLSearchParams || body instanceof Blob || body instanceof ArrayBuffer ? body : undefined,
111
- timeout: timeout,
112
- signal: signal,
113
- credentials: credentials,
114
- retry: 0
115
- };
116
- try {
117
- // 执行请求
118
- const kyResponse = await kyInstance(url, kyOptions);
119
- // 解析响应数据
120
- let data;
121
- const responseType = options.responseType || 'json';
122
- switch(responseType){
123
- case 'text':
124
- data = await kyResponse.text();
125
- break;
126
- case 'blob':
127
- data = await kyResponse.blob();
128
- break;
129
- case 'arrayBuffer':
130
- data = await kyResponse.arrayBuffer();
131
- break;
132
- case 'formData':
133
- data = await kyResponse.formData();
134
- break;
135
- case 'json':
136
- default:
137
- // @ts-ignore - ky 类型定义
138
- data = await kyResponse.json();
139
- break;
140
- }
141
- // 构建响应头对象
142
- const responseHeaders = {};
143
- kyResponse.headers.forEach((value, key)=>{
144
- responseHeaders[key] = value;
145
- });
146
- // 返回响应对象
147
- return {
148
- data,
149
- status: kyResponse.status,
150
- statusText: kyResponse.statusText,
151
- headers: responseHeaders,
152
- raw: kyResponse
153
- };
154
- } catch (error) {
155
- // ky 的错误处理
156
- if (error.response) {
157
- // HTTP 错误
158
- const status = error.response.status;
159
- const statusText = error.response.statusText || '';
160
- // 尝试解析错误响应体
161
- let errorData;
162
- try {
163
- errorData = await error.response.json();
164
- } catch {
165
- try {
166
- errorData = await error.response.text();
167
- } catch {
168
- errorData = null;
169
- }
170
- }
171
- throw {
172
- message: `HTTP ${status} ${statusText}`,
173
- status,
174
- statusText,
175
- response: {
176
- data: errorData,
177
- status,
178
- statusText,
179
- headers: {}
180
- },
181
- request: options
182
- };
183
- }
184
- // 其他错误
185
- throw error;
186
- }
187
- }
188
- };
189
- }
190
-
191
- //# sourceMappingURL=kyAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/request/adapter/kyAdapter.ts"],"sourcesContent":["/**\n * Ky 适配器\n * \n * 基于 ky 库的适配器实现(浏览器环境)\n */\n\nimport type { RequestAdapter } from './RequestAdapter';\nimport type { RequestOptions, Response } from '../types';\n\n/**\n * 创建 Ky 适配器\n */\nexport async function kyAdapter(): Promise<RequestAdapter> {\n // 动态导入 ky(按需加载)\n // 使用多种方式尝试导入,以兼容不同的构建工具\n let ky: any;\n let importError: unknown = null;\n\n // 方法1:使用 Function 构造函数(避免构建时解析)\n try {\n // @ts-ignore - ky 是可选依赖\n ky = await new Function('return import(\"ky\")')();\n } catch (error) {\n importError = error;\n // 方法2:直接使用动态导入(某些构建工具可能需要这种方式)\n try {\n // @ts-ignore - ky 是可选依赖\n ky = await import('ky');\n } catch (error2) {\n importError = error2;\n }\n }\n\n // 如果两种方法都失败,检查是否是模块未找到错误\n if (!ky || !ky.default) {\n if (importError instanceof Error) {\n const errorMessage = importError.message.toLowerCase();\n // 检查是否是模块未找到相关的错误\n const isModuleNotFound = \n errorMessage.includes('cannot find module') ||\n errorMessage.includes('cannot resolve') ||\n errorMessage.includes('module not found') ||\n errorMessage.includes('failed to resolve') ||\n errorMessage.includes('does not exist') ||\n errorMessage.includes('failed to fetch dynamically imported module') ||\n errorMessage.includes('loading chunk') ||\n errorMessage.includes('networkerror') ||\n (errorMessage.includes('ky') && (\n errorMessage.includes('resolve') ||\n errorMessage.includes('find') ||\n errorMessage.includes('not found')\n ));\n\n if (isModuleNotFound) {\n // 模块未找到,抛出友好的依赖缺失错误\n const { createDependencyError } = await import('../utils/dependencyCheck');\n const errorMessage = createDependencyError('ky', {\n adapterName: 'ky',\n environment: 'browser',\n });\n throw new Error(errorMessage);\n }\n }\n throw new Error('ky 库导入失败,请检查安装是否正确');\n }\n\n const kyInstance = ky.default;\n\n return {\n name: 'ky',\n capabilities: {\n supportsAbort: true,\n supportsTimeout: true,\n supportsProgress: false,\n supportsInterceptors: false,\n },\n\n async request<TResponse = unknown>(options: RequestOptions<TResponse>): Promise<Response<TResponse>> {\n const { url, method = 'GET', headers = {}, query, body, timeout, signal, credentials } = options;\n\n // 构建 ky 选项\n const kyOptions: Parameters<typeof kyInstance>[1] = {\n method: method as any,\n headers: headers as Record<string, string>,\n searchParams: query as Record<string, string | number | boolean>,\n json: typeof body === 'object' && body !== null && !(body instanceof FormData) ? body : undefined,\n body: body instanceof FormData || body instanceof URLSearchParams || body instanceof Blob || body instanceof ArrayBuffer ? body : undefined,\n timeout: timeout,\n signal: signal,\n credentials: credentials,\n retry: 0, // 禁用 ky 的重试,由插件系统处理\n };\n\n try {\n // 执行请求\n const kyResponse = await kyInstance(url, kyOptions);\n\n // 解析响应数据\n let data: TResponse;\n const responseType = options.responseType || 'json';\n\n switch (responseType) {\n case 'text':\n data = (await kyResponse.text()) as TResponse;\n break;\n case 'blob':\n data = (await kyResponse.blob()) as TResponse;\n break;\n case 'arrayBuffer':\n data = (await kyResponse.arrayBuffer()) as TResponse;\n break;\n case 'formData':\n data = (await kyResponse.formData()) as TResponse;\n break;\n case 'json':\n default:\n // @ts-ignore - ky 类型定义\n data = await kyResponse.json<TResponse>();\n break;\n }\n\n // 构建响应头对象\n const responseHeaders: Record<string, string> = {};\n kyResponse.headers.forEach((value: string, key: string) => {\n responseHeaders[key] = value;\n });\n\n // 返回响应对象\n return {\n data,\n status: kyResponse.status,\n statusText: kyResponse.statusText,\n headers: responseHeaders,\n raw: kyResponse,\n };\n } catch (error: any) {\n // ky 的错误处理\n if (error.response) {\n // HTTP 错误\n const status = error.response.status;\n const statusText = error.response.statusText || '';\n\n // 尝试解析错误响应体\n let errorData: unknown;\n try {\n errorData = await error.response.json();\n } catch {\n try {\n errorData = await error.response.text();\n } catch {\n errorData = null;\n }\n }\n\n throw {\n message: `HTTP ${status} ${statusText}`,\n status,\n statusText,\n response: {\n data: errorData,\n status,\n statusText,\n headers: {},\n },\n request: options,\n };\n }\n\n // 其他错误\n throw error;\n }\n },\n };\n}\n"],"names":["kyAdapter","ky","importError","Function","error","error2","default","Error","errorMessage","message","toLowerCase","isModuleNotFound","includes","createDependencyError","adapterName","environment","kyInstance","name","capabilities","supportsAbort","supportsTimeout","supportsProgress","supportsInterceptors","request","options","url","method","headers","query","body","timeout","signal","credentials","kyOptions","searchParams","json","FormData","undefined","URLSearchParams","Blob","ArrayBuffer","retry","kyResponse","data","responseType","text","blob","arrayBuffer","formData","responseHeaders","forEach","value","key","status","statusText","raw","response","errorData"],"mappings":"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"}
@@ -1,213 +0,0 @@
1
- /**
2
- * Undici 适配器
3
- *
4
- * 基于 undici 库的适配器实现(Node.js 环境,高性能)
5
- */ "use strict";
6
- Object.defineProperty(exports, "__esModule", {
7
- value: true
8
- });
9
- Object.defineProperty(exports, "undiciAdapter", {
10
- enumerable: true,
11
- get: function() {
12
- return undiciAdapter;
13
- }
14
- });
15
- function _getRequireWildcardCache(nodeInterop) {
16
- if (typeof WeakMap !== "function") return null;
17
- var cacheBabelInterop = new WeakMap();
18
- var cacheNodeInterop = new WeakMap();
19
- return (_getRequireWildcardCache = function(nodeInterop) {
20
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
21
- })(nodeInterop);
22
- }
23
- function _interop_require_wildcard(obj, nodeInterop) {
24
- if (!nodeInterop && obj && obj.__esModule) {
25
- return obj;
26
- }
27
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
28
- return {
29
- default: obj
30
- };
31
- }
32
- var cache = _getRequireWildcardCache(nodeInterop);
33
- if (cache && cache.has(obj)) {
34
- return cache.get(obj);
35
- }
36
- var newObj = {
37
- __proto__: null
38
- };
39
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
40
- for(var key in obj){
41
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
42
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
43
- if (desc && (desc.get || desc.set)) {
44
- Object.defineProperty(newObj, key, desc);
45
- } else {
46
- newObj[key] = obj[key];
47
- }
48
- }
49
- }
50
- newObj.default = obj;
51
- if (cache) {
52
- cache.set(obj, newObj);
53
- }
54
- return newObj;
55
- }
56
- async function undiciAdapter() {
57
- // 动态导入 undici(按需加载)
58
- // 使用多种方式尝试导入,以兼容不同的构建工具
59
- let undici;
60
- let importError = null;
61
- // 方法1:使用 Function 构造函数(避免构建时解析)
62
- try {
63
- // @ts-ignore - undici 是可选依赖
64
- undici = await new Function('return import("undici")')();
65
- } catch (error) {
66
- importError = error;
67
- // 方法2:直接使用动态导入(某些构建工具可能需要这种方式)
68
- try {
69
- // @ts-ignore - undici 是可选依赖
70
- undici = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("undici")));
71
- } catch (error2) {
72
- importError = error2;
73
- }
74
- }
75
- // 如果两种方法都失败,检查是否是模块未找到错误
76
- if (!undici || !undici.request) {
77
- if (importError instanceof Error) {
78
- const errorMessage = importError.message.toLowerCase();
79
- // 检查是否是模块未找到相关的错误
80
- const isModuleNotFound = errorMessage.includes('cannot find module') || errorMessage.includes('cannot resolve') || errorMessage.includes('module not found') || errorMessage.includes('failed to resolve') || errorMessage.includes('does not exist') || errorMessage.includes('failed to fetch dynamically imported module') || errorMessage.includes('loading chunk') || errorMessage.includes('networkerror') || errorMessage.includes('undici') && (errorMessage.includes('resolve') || errorMessage.includes('find') || errorMessage.includes('not found'));
81
- if (isModuleNotFound) {
82
- // 模块未找到,抛出友好的依赖缺失错误
83
- const { createDependencyError } = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../utils/dependencyCheck")));
84
- const errorMessage = createDependencyError('undici', {
85
- adapterName: 'undici',
86
- environment: 'node'
87
- });
88
- throw new Error(errorMessage);
89
- }
90
- }
91
- throw new Error('undici 库导入失败,请检查安装是否正确');
92
- }
93
- return {
94
- name: 'undici',
95
- capabilities: {
96
- supportsAbort: true,
97
- supportsTimeout: true,
98
- supportsProgress: false,
99
- supportsInterceptors: false
100
- },
101
- async request (options) {
102
- const { url, method = 'GET', headers = {}, query, body, timeout, signal } = options;
103
- // 构建完整 URL
104
- let fullUrl = url;
105
- if (query) {
106
- const searchParams = new URLSearchParams();
107
- for (const [key, value] of Object.entries(query)){
108
- if (value !== null && value !== undefined) {
109
- searchParams.append(key, String(value));
110
- }
111
- }
112
- const queryString = searchParams.toString();
113
- if (queryString) {
114
- fullUrl += (fullUrl.includes('?') ? '&' : '?') + queryString;
115
- }
116
- }
117
- // 构建请求头
118
- const requestHeaders = {};
119
- for (const [key, value] of Object.entries(headers)){
120
- requestHeaders[key] = String(value);
121
- }
122
- // 构建请求体
123
- let requestBody;
124
- if (body !== undefined && body !== null) {
125
- if (typeof body === 'string') {
126
- requestBody = body;
127
- } else if (body instanceof ArrayBuffer) {
128
- requestBody = Buffer.from(body);
129
- } else if (Buffer.isBuffer(body)) {
130
- requestBody = body;
131
- } else {
132
- // 对象转换为 JSON
133
- requestHeaders['Content-Type'] = requestHeaders['Content-Type'] || 'application/json';
134
- requestBody = JSON.stringify(body);
135
- }
136
- }
137
- // 构建 undici 选项
138
- // @ts-ignore - undici 类型定义
139
- const undiciOptions = {
140
- method: method,
141
- headers: requestHeaders,
142
- body: requestBody,
143
- signal: signal
144
- };
145
- // 如果设置了超时,使用 AbortController
146
- let abortController;
147
- let timeoutId;
148
- if (timeout && timeout > 0) {
149
- abortController = new AbortController();
150
- timeoutId = setTimeout(()=>{
151
- abortController.abort();
152
- }, timeout);
153
- undiciOptions.signal = abortController.signal;
154
- }
155
- try {
156
- // 执行请求
157
- const undiciResponse = await undici.request(fullUrl, undiciOptions);
158
- // 解析响应数据
159
- let data;
160
- const responseType = options.responseType || 'json';
161
- switch(responseType){
162
- case 'text':
163
- data = await undiciResponse.body.text();
164
- break;
165
- case 'blob':
166
- data = await undiciResponse.body.blob();
167
- break;
168
- case 'arrayBuffer':
169
- data = await undiciResponse.body.arrayBuffer();
170
- break;
171
- case 'formData':
172
- data = await undiciResponse.body.formData();
173
- break;
174
- case 'json':
175
- default:
176
- try {
177
- data = await undiciResponse.body.json();
178
- } catch {
179
- // 如果 JSON 解析失败,返回空对象
180
- data = {};
181
- }
182
- break;
183
- }
184
- // 构建响应头对象
185
- const responseHeaders = {};
186
- for (const [key, value] of Object.entries(undiciResponse.headers)){
187
- responseHeaders[key] = Array.isArray(value) ? value.join(', ') : String(value);
188
- }
189
- // 检查 HTTP 状态码
190
- if (undiciResponse.statusCode >= 400) {
191
- throw new Error(`HTTP ${undiciResponse.statusCode} ${undiciResponse.statusText || ''}`);
192
- }
193
- // 返回响应对象
194
- return {
195
- data,
196
- status: undiciResponse.statusCode,
197
- statusText: undiciResponse.statusText || '',
198
- headers: responseHeaders,
199
- raw: undiciResponse
200
- };
201
- } catch (error) {
202
- // 清理超时定时器
203
- if (timeoutId) {
204
- clearTimeout(timeoutId);
205
- }
206
- // 重新抛出错误
207
- throw error;
208
- }
209
- }
210
- };
211
- }
212
-
213
- //# sourceMappingURL=undiciAdapter.js.map