@be-link/http 1.1.0 → 1.2.0
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/BeLinkHttp.d.ts +115 -19
- package/dist/BeLinkHttp.d.ts.map +1 -1
- package/dist/adapters/AxiosAdapter.d.ts +40 -0
- package/dist/adapters/AxiosAdapter.d.ts.map +1 -0
- package/dist/adapters/TaroAdapter.d.ts +68 -0
- package/dist/adapters/TaroAdapter.d.ts.map +1 -0
- package/dist/adapters/index.d.ts +11 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/types.d.ts +136 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/index.cjs.js +536 -217
- package/dist/index.d.ts +35 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +534 -218
- package/dist/interceptors/core.d.ts +58 -0
- package/dist/interceptors/core.d.ts.map +1 -0
- package/dist/services/TimeSyncService.d.ts +36 -1
- package/dist/services/TimeSyncService.d.ts.map +1 -1
- package/dist/types.d.ts +24 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 通用拦截器核心逻辑
|
|
3
|
+
*
|
|
4
|
+
* 提供与具体 HTTP 库无关的请求/响应处理函数
|
|
5
|
+
* 支持 Axios 和 Taro.request 适配器复用
|
|
6
|
+
*
|
|
7
|
+
* @module interceptors/core
|
|
8
|
+
*/
|
|
9
|
+
import type { AdapterRequestConfig } from '../adapters/types';
|
|
10
|
+
import type { RequestOptions } from '../types';
|
|
11
|
+
import type { EncryptionService } from '../services/EncryptionService';
|
|
12
|
+
import type { TimeSyncService } from '../services/TimeSyncService';
|
|
13
|
+
/**
|
|
14
|
+
* 处理请求配置
|
|
15
|
+
*
|
|
16
|
+
* 在请求发出前对配置进行处理,包括:
|
|
17
|
+
* 1. 确保时间同步
|
|
18
|
+
* 2. 设置默认 Content-Type
|
|
19
|
+
* 3. 添加用户 ID 到请求头
|
|
20
|
+
* 4. 加密并添加 Token 到请求头
|
|
21
|
+
* 5. 调用自定义请求拦截器
|
|
22
|
+
*
|
|
23
|
+
* @param config - 请求配置
|
|
24
|
+
* @param options - 全局请求选项
|
|
25
|
+
* @param timeSyncService - 时间同步服务(可选)
|
|
26
|
+
* @param encryptionService - 加密服务(可选)
|
|
27
|
+
* @returns 处理后的请求配置
|
|
28
|
+
*/
|
|
29
|
+
export declare function processRequest(config: AdapterRequestConfig, options: RequestOptions, timeSyncService?: TimeSyncService | null, encryptionService?: EncryptionService | null): Promise<AdapterRequestConfig>;
|
|
30
|
+
/**
|
|
31
|
+
* 处理响应数据
|
|
32
|
+
*
|
|
33
|
+
* 在收到响应后对数据进行处理,调用自定义响应拦截器
|
|
34
|
+
*
|
|
35
|
+
* @param data - 响应数据
|
|
36
|
+
* @param options - 全局请求选项
|
|
37
|
+
* @returns 处理后的响应数据
|
|
38
|
+
*/
|
|
39
|
+
export declare function processResponse<T>(data: T, options: RequestOptions): T;
|
|
40
|
+
/**
|
|
41
|
+
* 处理错误
|
|
42
|
+
*
|
|
43
|
+
* 在请求出错时进行处理,支持自定义错误处理和业务错误检查
|
|
44
|
+
*
|
|
45
|
+
* @param error - 错误对象
|
|
46
|
+
* @param options - 全局请求选项
|
|
47
|
+
* @throws 处理后的错误
|
|
48
|
+
*/
|
|
49
|
+
export declare function processError(error: any, options: RequestOptions): never;
|
|
50
|
+
/**
|
|
51
|
+
* 检查响应状态并处理业务错误
|
|
52
|
+
*
|
|
53
|
+
* @param data - 响应数据
|
|
54
|
+
* @param status - HTTP 状态码
|
|
55
|
+
* @returns 处理后的响应数据
|
|
56
|
+
*/
|
|
57
|
+
export declare function checkResponseStatus<T>(data: T, status: number): T;
|
|
58
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/interceptors/core.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAA6B,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,cAAc,EACvB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,EACxC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAC3C,OAAO,CAAC,oBAAoB,CAAC,CAuC/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,CAAC,CAQtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,GAAG,KAAK,CAyBvE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAmBjE"}
|
|
@@ -9,6 +9,18 @@
|
|
|
9
9
|
* @module TimeSyncService
|
|
10
10
|
*/
|
|
11
11
|
import type { TimeSyncConfig, TimeSyncService as ITimeSyncService } from '../types';
|
|
12
|
+
/**
|
|
13
|
+
* Fetch 函数类型
|
|
14
|
+
*
|
|
15
|
+
* 用于注入自定义的请求函数,支持 Taro 等非浏览器环境
|
|
16
|
+
*/
|
|
17
|
+
export type FetchFunction = (url: string, options?: {
|
|
18
|
+
method?: string;
|
|
19
|
+
}) => Promise<{
|
|
20
|
+
ok: boolean;
|
|
21
|
+
status: number;
|
|
22
|
+
json: () => Promise<any>;
|
|
23
|
+
}>;
|
|
12
24
|
/**
|
|
13
25
|
* 时间同步服务
|
|
14
26
|
*
|
|
@@ -50,10 +62,33 @@ export declare class TimeSyncService implements ITimeSyncService {
|
|
|
50
62
|
* 当有同步请求正在进行时,其他请求会等待这个 Promise 完成
|
|
51
63
|
*/
|
|
52
64
|
private syncPromise;
|
|
65
|
+
/**
|
|
66
|
+
* 自定义 fetch 函数
|
|
67
|
+
* 用于支持 Taro 等非浏览器环境
|
|
68
|
+
*/
|
|
69
|
+
private fetchFn;
|
|
53
70
|
/**
|
|
54
71
|
* 创建时间同步服务实例
|
|
72
|
+
*
|
|
73
|
+
* @param config - 时间同步配置
|
|
74
|
+
* @param fetchFn - 自定义 fetch 函数(可选),用于支持 Taro 等非浏览器环境
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```ts
|
|
78
|
+
* // 使用默认 fetch
|
|
79
|
+
* const timeSync = new TimeSyncService({ syncUrl: 'https://api.example.com/time' });
|
|
80
|
+
*
|
|
81
|
+
* // 使用 Taro.request
|
|
82
|
+
* import { createTaroFetch } from '@be-link/http';
|
|
83
|
+
* const timeSync = new TimeSyncService(config, createTaroFetch(Taro.request));
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
constructor(config: TimeSyncConfig, fetchFn?: FetchFunction);
|
|
87
|
+
/**
|
|
88
|
+
* 默认的 fetch 实现
|
|
89
|
+
* 使用浏览器原生 fetch API
|
|
55
90
|
*/
|
|
56
|
-
|
|
91
|
+
private defaultFetch;
|
|
57
92
|
/**
|
|
58
93
|
* 确保时间已同步
|
|
59
94
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeSyncService.d.ts","sourceRoot":"","sources":["../../src/services/TimeSyncService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"TimeSyncService.d.ts","sourceRoot":"","sources":["../../src/services/TimeSyncService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEpF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAC1B,OAAO,CAAC;IACX,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;CAC1B,CAAC,CAAC;AAoCH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,WAAW;IACX,OAAO,CAAC,MAAM,CAAiB;IAE/B;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAuB;IAE7C;;;OAGG;IACH,OAAO,CAAC,mBAAmB,CAAuB;IAElD;;;OAGG;IACH,OAAO,CAAC,WAAW,CAA8B;IAEjD;;;OAGG;IACH,OAAO,CAAC,OAAO,CAAgB;IAE/B;;;;;;;;;;;;;;;OAeG;gBACS,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa;IAW3D;;;OAGG;YACW,YAAY;IAgB1B;;;;;;;;;;OAUG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBxC;;;;;;;;;OASG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBlC;;OAEG;YACW,MAAM;IA2CpB;;;;OAIG;IACI,aAAa,IAAI,MAAM,GAAG,IAAI;IAIrC;;;;;OAKG;IACI,WAAW,IAAI,MAAM,GAAG,IAAI;IAOnC;;;;;;;;;OASG;IACI,eAAe,IAAI,MAAM;IAUhC;;OAEG;IACI,KAAK,IAAI,IAAI;IAYpB;;OAEG;IACI,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;CAG3D"}
|
package/dist/types.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* 本文件定义了请求库的所有 TypeScript 类型接口
|
|
5
5
|
*/
|
|
6
6
|
import type { AxiosInstance, InternalAxiosRequestConfig } from 'axios';
|
|
7
|
+
import type { TaroRequestFunction } from './adapters/types';
|
|
7
8
|
/**
|
|
8
9
|
* 时间同步配置
|
|
9
10
|
*
|
|
@@ -161,6 +162,29 @@ export interface RequestOptions {
|
|
|
161
162
|
* @returns 处理后的结果或抛出错误
|
|
162
163
|
*/
|
|
163
164
|
onError?: (error: any) => any;
|
|
165
|
+
/**
|
|
166
|
+
* 请求适配器类型
|
|
167
|
+
* - 'axios': 使用 Axios(默认,适用于浏览器和 Node.js)
|
|
168
|
+
* - 'taro': 使用 Taro.request(适用于 Taro 小程序项目)
|
|
169
|
+
* @default 'axios'
|
|
170
|
+
*/
|
|
171
|
+
adapter?: 'axios' | 'taro';
|
|
172
|
+
/**
|
|
173
|
+
* Taro.request 函数引用
|
|
174
|
+
* 使用 taro 适配器时必须传入
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* ```ts
|
|
178
|
+
* import Taro from '@tarojs/taro';
|
|
179
|
+
*
|
|
180
|
+
* beLinkHttp.init({
|
|
181
|
+
* adapter: 'taro',
|
|
182
|
+
* taroRequest: Taro.request,
|
|
183
|
+
* // ...
|
|
184
|
+
* });
|
|
185
|
+
* ```
|
|
186
|
+
*/
|
|
187
|
+
taroRequest?: TaroRequestFunction;
|
|
164
188
|
}
|
|
165
189
|
/**
|
|
166
190
|
* API 响应结构
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,OAAO,CAAC;AAEvE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAE3C;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAE5C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAErH;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEtD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED