@whitesev/utils 2.6.5 → 2.6.7

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.
@@ -1,176 +1,176 @@
1
- import type { HttpxHookErrorData, HttpxRequestOption, HttpxRequestOptionConfig, HttpxResponse, HttpxResponseData, HttpxPromise } from "./types/Httpx";
2
- declare class Httpx {
3
- #private;
4
- private GM_Api;
5
- private HttpxRequestHook;
6
- private HttpxResponseHook;
7
- private HttpxRequestOption;
8
- private HttpxCallBack;
9
- private HttpxRequest;
10
- /**
11
- * 实例化,可传入GM_xmlhttpRequest,未传入则使用window.fetch
12
- * @param xmlHttpRequest
13
- */
14
- constructor(xmlHttpRequest?: Function);
15
- /**
16
- * 覆盖全局配置
17
- * @param details 配置
18
- */
19
- config(details?: Partial<HttpxRequestOptionConfig>): void;
20
- /**
21
- * 拦截器
22
- */
23
- interceptors: {
24
- /**
25
- * 请求拦截器
26
- */
27
- request: {
28
- context: Httpx;
29
- /**
30
- * 添加拦截器
31
- * @param fn 设置的请求前回调函数,如果返回配置,则使用返回的配置,如果返回null|undefined,则阻止请求
32
- */
33
- use(fn: <T extends Required<HttpxRequestOption>>(details: T) => void | T | Promise<void | T>): string | undefined;
34
- /**
35
- * 移除拦截器
36
- * @param id 通过use返回的id
37
- */
38
- eject(id: string): boolean;
39
- /**
40
- * 移除所有拦截器
41
- */
42
- ejectAll(): void;
43
- };
44
- /**
45
- * 响应拦截器
46
- */
47
- response: {
48
- context: Httpx;
49
- /**
50
- * 添加拦截器
51
- * @param successFn 设置的响应后回调函数,如果返回响应,则使用返回的响应,如果返回null|undefined,则阻止响应
52
- * + 2xx 范围内的状态码都会触发该函数
53
- * @param errorFn 设置的响应后回调函数,如果返回响应,则使用返回的响应,如果返回null|undefined,则阻止响应
54
- * + 超出 2xx 范围的状态码都会触发该函数
55
- */
56
- use(successFn?: <T extends HttpxResponseData<HttpxRequestOption>>(response: T, details: HttpxRequestOption) => void | T, errorFn?: <T extends HttpxHookErrorData>(data: T) => void | T | Promise<void | T>): string | undefined;
57
- /**
58
- * 移除拦截器
59
- * @param id 通过use返回的id
60
- */
61
- eject(id: string): boolean;
62
- /**
63
- * 移除所有拦截器
64
- */
65
- ejectAll(): void;
66
- };
67
- };
68
- /**
69
- * 修改xmlHttpRequest
70
- * @param httpRequest 网络请求函数
71
- */
72
- setXMLHttpRequest(httpRequest: Function): void;
73
- /**
74
- * GET 请求
75
- * @param url 网址
76
- */
77
- get<T extends HttpxRequestOption>(url: string): HttpxPromise<HttpxResponse<T>>;
78
- /**
79
- * GET 请求
80
- * @param details 配置
81
- */
82
- get<T extends HttpxRequestOption>(details: T): HttpxPromise<HttpxResponse<T>>;
83
- /**
84
- * GET 请求
85
- * @param url 网址
86
- * @param details 配置
87
- */
88
- get<T extends HttpxRequestOption>(url: string, details: T): HttpxPromise<HttpxResponse<T>>;
89
- /**
90
- * POST 请求
91
- * @param details 配置
92
- */
93
- post<T extends HttpxRequestOption>(details: T): HttpxPromise<HttpxResponse<T>>;
94
- /**
95
- * POST 请求
96
- * @param url 网址
97
- */
98
- post<T extends HttpxRequestOption>(url: string): HttpxPromise<HttpxResponse<T>>;
99
- /**
100
- * POST 请求
101
- * @param url 网址
102
- * @param details 配置
103
- */
104
- post<T extends HttpxRequestOption>(url: string, details: T): HttpxPromise<HttpxResponse<T>>;
105
- /**
106
- * HEAD 请求
107
- * @param details 配置
108
- */
109
- head<T extends HttpxRequestOption>(details: T): HttpxPromise<HttpxResponse<T>>;
110
- /**
111
- * HEAD 请求
112
- * @param url 网址
113
- */
114
- head<T extends HttpxRequestOption>(url: string): HttpxPromise<HttpxResponse<T>>;
115
- /**
116
- * HEAD 请求
117
- * @param url 网址
118
- * @param details 配置
119
- */
120
- head<T extends HttpxRequestOption>(url: string, details: T): HttpxPromise<HttpxResponse<T>>;
121
- /**
122
- * OPTIONS 请求
123
- * @param details 配置
124
- */
125
- options<T extends HttpxRequestOption>(details: T): HttpxPromise<HttpxResponse<T>>;
126
- /**
127
- * OPTIONS 请求
128
- * @param url 网址
129
- */
130
- options<T extends HttpxRequestOption>(url: string): HttpxPromise<HttpxResponse<T>>;
131
- /**
132
- * OPTIONS 请求
133
- * @param url 网址
134
- * @param details 配置
135
- */
136
- options<T extends HttpxRequestOption>(url: string, details: T): HttpxPromise<HttpxResponse<T>>;
137
- /**
138
- * DELETE 请求
139
- * @param details 配置
140
- */
141
- delete<T extends HttpxRequestOption>(details: T): HttpxPromise<HttpxResponse<T>>;
142
- /**
143
- * DELETE 请求
144
- * @param url 网址
145
- */
146
- delete<T extends HttpxRequestOption>(url: string): HttpxPromise<HttpxResponse<T>>;
147
- /**
148
- * DELETE 请求
149
- * @param url 网址
150
- * @param details 配置
151
- */
152
- delete<T extends HttpxRequestOption>(url: string, details: T): HttpxPromise<HttpxResponse<T>>;
153
- /**
154
- * PUT 请求
155
- * @param details 配置
156
- */
157
- put<T extends HttpxRequestOption>(details: T): HttpxPromise<HttpxResponse<T>>;
158
- /**
159
- * PUT 请求
160
- * @param url 网址
161
- */
162
- put<T extends HttpxRequestOption>(url: string): HttpxPromise<HttpxResponse<T>>;
163
- /**
164
- * PUT 请求
165
- * @param url 网址
166
- * @param details 配置
167
- */
168
- put<T extends HttpxRequestOption>(url: string, details: T): HttpxPromise<HttpxResponse<T>>;
169
- /**
170
- * 发送请求
171
- * @param details 配置
172
- * @param beforeRequestOption 处理请求前的配置
173
- */
174
- request<T extends HttpxRequestOption>(details: T, beforeRequestOption?: (option: Required<T>) => void): HttpxPromise<HttpxResponse<T>>;
175
- }
176
- export { Httpx };
1
+ import type { HttpxHookErrorData, HttpxRequestOption, HttpxResponse, HttpxResponseData, HttpxPromise, HttpxInitOption } from "./types/Httpx";
2
+ declare class Httpx {
3
+ #private;
4
+ private GM_Api;
5
+ private HttpxRequestHook;
6
+ private HttpxResponseHook;
7
+ private HttpxRequestOption;
8
+ private HttpxCallBack;
9
+ private HttpxRequest;
10
+ /**
11
+ * 实例化
12
+ * @param option 初始化配置
13
+ */
14
+ constructor(option?: Partial<HttpxInitOption>);
15
+ /**
16
+ * 覆盖当前配置
17
+ * @param option
18
+ */
19
+ config(option?: Partial<HttpxInitOption>): void;
20
+ /**
21
+ * 拦截器
22
+ */
23
+ interceptors: {
24
+ /**
25
+ * 请求拦截器
26
+ */
27
+ request: {
28
+ context: Httpx;
29
+ /**
30
+ * 添加拦截器
31
+ * @param fn 设置的请求前回调函数,如果返回配置,则使用返回的配置,如果返回null|undefined,则阻止请求
32
+ */
33
+ use(fn: <T extends Required<HttpxRequestOption>>(details: T) => void | T | Promise<void | T>): string | undefined;
34
+ /**
35
+ * 移除拦截器
36
+ * @param id 通过use返回的id
37
+ */
38
+ eject(id: string): boolean;
39
+ /**
40
+ * 移除所有拦截器
41
+ */
42
+ ejectAll(): void;
43
+ };
44
+ /**
45
+ * 响应拦截器
46
+ */
47
+ response: {
48
+ context: Httpx;
49
+ /**
50
+ * 添加拦截器
51
+ * @param successFn 设置的响应后回调函数,如果返回响应,则使用返回的响应,如果返回null|undefined,则阻止响应
52
+ * + 2xx 范围内的状态码都会触发该函数
53
+ * @param errorFn 设置的响应后回调函数,如果返回响应,则使用返回的响应,如果返回null|undefined,则阻止响应
54
+ * + 超出 2xx 范围的状态码都会触发该函数
55
+ */
56
+ use(successFn?: <T extends HttpxResponseData<HttpxRequestOption>>(response: T, details: HttpxRequestOption) => void | T, errorFn?: <T extends HttpxHookErrorData>(data: T) => void | T | Promise<void | T>): string | undefined;
57
+ /**
58
+ * 移除拦截器
59
+ * @param id 通过use返回的id
60
+ */
61
+ eject(id: string): boolean;
62
+ /**
63
+ * 移除所有拦截器
64
+ */
65
+ ejectAll(): void;
66
+ };
67
+ };
68
+ /**
69
+ * 修改xmlHttpRequest
70
+ * @param httpRequest 网络请求函数
71
+ */
72
+ setXMLHttpRequest(httpRequest: Function): void;
73
+ /**
74
+ * GET 请求
75
+ * @param url 网址
76
+ */
77
+ get<T extends HttpxRequestOption>(url: string): HttpxPromise<HttpxResponse<T>>;
78
+ /**
79
+ * GET 请求
80
+ * @param details 配置
81
+ */
82
+ get<T extends HttpxRequestOption>(details: T): HttpxPromise<HttpxResponse<T>>;
83
+ /**
84
+ * GET 请求
85
+ * @param url 网址
86
+ * @param details 配置
87
+ */
88
+ get<T extends HttpxRequestOption>(url: string, details: T): HttpxPromise<HttpxResponse<T>>;
89
+ /**
90
+ * POST 请求
91
+ * @param details 配置
92
+ */
93
+ post<T extends HttpxRequestOption>(details: T): HttpxPromise<HttpxResponse<T>>;
94
+ /**
95
+ * POST 请求
96
+ * @param url 网址
97
+ */
98
+ post<T extends HttpxRequestOption>(url: string): HttpxPromise<HttpxResponse<T>>;
99
+ /**
100
+ * POST 请求
101
+ * @param url 网址
102
+ * @param details 配置
103
+ */
104
+ post<T extends HttpxRequestOption>(url: string, details: T): HttpxPromise<HttpxResponse<T>>;
105
+ /**
106
+ * HEAD 请求
107
+ * @param details 配置
108
+ */
109
+ head<T extends HttpxRequestOption>(details: T): HttpxPromise<HttpxResponse<T>>;
110
+ /**
111
+ * HEAD 请求
112
+ * @param url 网址
113
+ */
114
+ head<T extends HttpxRequestOption>(url: string): HttpxPromise<HttpxResponse<T>>;
115
+ /**
116
+ * HEAD 请求
117
+ * @param url 网址
118
+ * @param details 配置
119
+ */
120
+ head<T extends HttpxRequestOption>(url: string, details: T): HttpxPromise<HttpxResponse<T>>;
121
+ /**
122
+ * OPTIONS 请求
123
+ * @param details 配置
124
+ */
125
+ options<T extends HttpxRequestOption>(details: T): HttpxPromise<HttpxResponse<T>>;
126
+ /**
127
+ * OPTIONS 请求
128
+ * @param url 网址
129
+ */
130
+ options<T extends HttpxRequestOption>(url: string): HttpxPromise<HttpxResponse<T>>;
131
+ /**
132
+ * OPTIONS 请求
133
+ * @param url 网址
134
+ * @param details 配置
135
+ */
136
+ options<T extends HttpxRequestOption>(url: string, details: T): HttpxPromise<HttpxResponse<T>>;
137
+ /**
138
+ * DELETE 请求
139
+ * @param details 配置
140
+ */
141
+ delete<T extends HttpxRequestOption>(details: T): HttpxPromise<HttpxResponse<T>>;
142
+ /**
143
+ * DELETE 请求
144
+ * @param url 网址
145
+ */
146
+ delete<T extends HttpxRequestOption>(url: string): HttpxPromise<HttpxResponse<T>>;
147
+ /**
148
+ * DELETE 请求
149
+ * @param url 网址
150
+ * @param details 配置
151
+ */
152
+ delete<T extends HttpxRequestOption>(url: string, details: T): HttpxPromise<HttpxResponse<T>>;
153
+ /**
154
+ * PUT 请求
155
+ * @param details 配置
156
+ */
157
+ put<T extends HttpxRequestOption>(details: T): HttpxPromise<HttpxResponse<T>>;
158
+ /**
159
+ * PUT 请求
160
+ * @param url 网址
161
+ */
162
+ put<T extends HttpxRequestOption>(url: string): HttpxPromise<HttpxResponse<T>>;
163
+ /**
164
+ * PUT 请求
165
+ * @param url 网址
166
+ * @param details 配置
167
+ */
168
+ put<T extends HttpxRequestOption>(url: string, details: T): HttpxPromise<HttpxResponse<T>>;
169
+ /**
170
+ * 发送请求
171
+ * @param details 配置
172
+ * @param beforeRequestOption 处理请求前的配置
173
+ */
174
+ request<T extends HttpxRequestOption>(details: T, beforeRequestOption?: (option: Required<T>) => void): HttpxPromise<HttpxResponse<T>>;
175
+ }
176
+ export { Httpx };
@@ -1799,6 +1799,12 @@ declare class Utils {
1799
1799
  * Utils.toUrl("/s?word=666");
1800
1800
  */
1801
1801
  toUrl(text: string): URL;
1802
+ /**
1803
+ * 覆盖对象中的函数this指向
1804
+ * @param target 需要覆盖的对象
1805
+ * @param [objectThis] 覆盖的this指向,如果为传入,则默认为对象本身
1806
+ */
1807
+ coverObjectFunctionThis(target: any, objectThis?: any): void;
1802
1808
  /**
1803
1809
  * 生成uuid
1804
1810
  * @example
@@ -1819,6 +1825,28 @@ declare class Utils {
1819
1825
  */
1820
1826
  Vue: typeof Vue;
1821
1827
  ModuleRaid: typeof ModuleRaid;
1828
+ /**
1829
+ * 自动使用 Worker 执行 setTimeout
1830
+ * @param callback 回调函数
1831
+ * @param [timeout=0] 延迟时间,默认为0
1832
+ */
1833
+ workerSetTimeout(callback: Function, timeout?: number): number;
1834
+ /**
1835
+ * 配合 .setTimeout 使用
1836
+ * @param timeId setTimeout 返回的`id`
1837
+ */
1838
+ workerClearTimeout(timeId: number | undefined): void;
1839
+ /**
1840
+ * 自动使用 Worker 执行 setInterval
1841
+ * @param callback 回调函数
1842
+ * @param timeout 间隔时间,默认为0
1843
+ */
1844
+ workerSetInterval(callback: Function, timeout?: number): number;
1845
+ /**
1846
+ * 配合 .setInterval 使用
1847
+ * @param timeId setInterval 返回的`id`
1848
+ */
1849
+ workerClearInterval(timeId: number | undefined): void;
1822
1850
  }
1823
1851
  declare let utils: Utils;
1824
1852
  export { utils as Utils };
@@ -1210,12 +1210,7 @@ export declare interface HttpxRequestOption {
1210
1210
  /**
1211
1211
  * 自定义的配置请求
1212
1212
  */
1213
- export declare interface HttpxRequestOptionConfig extends HttpxRequestOption {
1214
- /**
1215
- * (可选)是否输出请求配置
1216
- */
1217
- logDetails?: boolean;
1218
- }
1213
+ export declare interface HttpxRequestOptionConfig extends HttpxInitOption {}
1219
1214
  /**
1220
1215
  * 响应的数据的data
1221
1216
  */
@@ -1334,3 +1329,26 @@ export declare interface HttpxHookErrorData {
1334
1329
  export declare interface HttpxPromise<T> extends Promise<T> {
1335
1330
  abort: () => void;
1336
1331
  }
1332
+
1333
+ /**
1334
+ * httpx的初始化配置
1335
+ */
1336
+ export declare interface HttpxInitOption extends HttpxRequestOption {
1337
+ /**
1338
+ * 实例化,可传入GM_xmlhttpRequest,未传入则使用window.fetch
1339
+ */
1340
+ xmlHttpRequest?: Function;
1341
+ /**
1342
+ * `baseURL` 将自动加在 `url` 前面,除非 `url` 是一个绝对 URL。
1343
+ */
1344
+ baseURL?: string | undefined;
1345
+ /**
1346
+ * 重试次数
1347
+ * @default 0
1348
+ */
1349
+ retry?: number;
1350
+ /**
1351
+ * (可选)是否输出请求配置
1352
+ */
1353
+ logDetails?: boolean;
1354
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whitesev/utils",
3
- "version": "2.6.5",
3
+ "version": "2.6.7",
4
4
  "description": "一个常用的工具库",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",
@@ -38,7 +38,8 @@
38
38
  "@rollup/plugin-node-resolve": "^15.2.3",
39
39
  "@rollup/plugin-typescript": "^11.1.6",
40
40
  "rollup-plugin-clear": "^2.0.7",
41
- "tslib": "^2.6.3"
41
+ "tslib": "^2.6.3",
42
+ "worker-timers": "^8.0.21"
42
43
  },
43
44
  "devDependencies": {
44
45
  "typescript": "^5.5.4"