@whitesev/utils 2.6.3 → 2.6.5

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,170 +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
- export { Httpx };
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 };
@@ -2,6 +2,10 @@ import type { UtilsGMCookieDeleteOptions, UtilsGMCookieListOptions, UtilsGMCooki
2
2
  export declare class UtilsGMCookie {
3
3
  private windowApi;
4
4
  constructor(windowApiOption?: WindowApiOption);
5
+ /**
6
+ * 获取Cookie分组
7
+ */
8
+ private getCookiesList;
5
9
  /**
6
10
  * 获取单个cookie
7
11
  * @param cookieName cookie名
@@ -62,6 +62,19 @@ export type HttpxStatus =
62
62
  | 510
63
63
  | 511;
64
64
 
65
+ /**
66
+ * HTTP WebDav的请求方法
67
+ * + https://blog.csdn.net/weixin_48421613/article/details/128611546
68
+ */
69
+ export type HttpxWebDavMethod =
70
+ | "PROPFIND"
71
+ | "PROPPATCH"
72
+ | "MKCOL"
73
+ | "MOVE"
74
+ | "COPY"
75
+ | "LOCK"
76
+ | "UNLOCK";
77
+
65
78
  /**
66
79
  * HTTP 请求方法
67
80
  * + https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods
@@ -75,7 +88,8 @@ export type HttpxMethod =
75
88
  | "CONNECT"
76
89
  | "OPTIONS"
77
90
  | "TRACE"
78
- | "PATCH";
91
+ | "PATCH"
92
+ | HttpxWebDavMethod;
79
93
 
80
94
  /**
81
95
  * 重定向参数
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whitesev/utils",
3
- "version": "2.6.3",
3
+ "version": "2.6.5",
4
4
  "description": "一个常用的工具库",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",
package/src/Httpx.ts CHANGED
@@ -244,7 +244,7 @@ class Httpx {
244
244
  handleBeforeRequestOption(...args: (HttpxRequestOption | string)[]) {
245
245
  let option: HttpxRequestOption = {};
246
246
  if (typeof args[0] === "string") {
247
- /* 传入的是url,details? */
247
+ /* 传入的是url,转为配置 */
248
248
  let url = args[0];
249
249
  option.url = url;
250
250
  if (typeof args[1] === "object") {
@@ -254,7 +254,7 @@ class Httpx {
254
254
  option.url = url;
255
255
  }
256
256
  } else {
257
- /* 传入的是details */
257
+ /* 传入的是配置 */
258
258
  option = args[0];
259
259
  }
260
260
  return option;
@@ -1349,37 +1349,13 @@ class Httpx {
1349
1349
  get(
1350
1350
  ...args: (string | HttpxRequestOption)[] // @ts-ignore
1351
1351
  ): HttpxPromise<HttpxResponse<HttpxRequestOption>> {
1352
- let userRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
1352
+ let useRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
1353
1353
  ...args
1354
1354
  );
1355
- let abortFn: Function | null = null;
1356
- let promise = new globalThis.Promise<HttpxResponse<HttpxRequestOption>>(
1357
- async (resolve, reject) => {
1358
- let requestOption = this.HttpxRequestOption.getRequestOption(
1359
- "GET",
1360
- userRequestOption,
1361
- resolve,
1362
- reject
1363
- );
1364
- Reflect.deleteProperty(requestOption, "onprogress");
1365
- this.HttpxRequestOption.removeRequestNullOption(requestOption);
1366
- const requestResult = await this.HttpxRequest.request(requestOption);
1367
- if (
1368
- requestResult != null &&
1369
- typeof requestResult.abort === "function"
1370
- ) {
1371
- abortFn = requestResult.abort;
1372
- }
1373
- }
1374
- );
1375
- // @ts-ignore
1376
- promise.abort = () => {
1377
- if (typeof abortFn === "function") {
1378
- abortFn();
1379
- }
1380
- };
1381
- // @ts-ignore
1382
- return promise;
1355
+ useRequestOption.method = "GET";
1356
+ return this.request(useRequestOption, (option) => {
1357
+ Reflect.deleteProperty(option, "onprogress");
1358
+ });
1383
1359
  }
1384
1360
  /**
1385
1361
  * POST 请求
@@ -1411,38 +1387,11 @@ class Httpx {
1411
1387
  post(
1412
1388
  ...args: (HttpxRequestOption | string)[] // @ts-ignore
1413
1389
  ): HttpxPromise<HttpxResponse<HttpxRequestOption>> {
1414
- let userRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
1390
+ let useRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
1415
1391
  ...args
1416
1392
  );
1417
- let abortFn: Function | null = null;
1418
- let promise = new Promise<HttpxResponse<HttpxRequestOption>>(
1419
- async (resolve, reject) => {
1420
- let requestOption = this.HttpxRequestOption.getRequestOption(
1421
- "POST",
1422
- userRequestOption,
1423
- resolve,
1424
- reject
1425
- );
1426
- // @ts-ignore
1427
- requestOption =
1428
- this.HttpxRequestOption.removeRequestNullOption(requestOption);
1429
- const requestResult = await this.HttpxRequest.request(requestOption);
1430
- if (
1431
- requestResult != null &&
1432
- typeof requestResult.abort === "function"
1433
- ) {
1434
- abortFn = requestResult.abort;
1435
- }
1436
- }
1437
- );
1438
- // @ts-ignore
1439
- promise.abort = () => {
1440
- if (typeof abortFn === "function") {
1441
- abortFn();
1442
- }
1443
- };
1444
- // @ts-ignore
1445
- return promise;
1393
+ useRequestOption.method = "POST";
1394
+ return this.request(useRequestOption);
1446
1395
  }
1447
1396
  /**
1448
1397
  * HEAD 请求
@@ -1473,40 +1422,13 @@ class Httpx {
1473
1422
  head(
1474
1423
  ...args: (HttpxRequestOption | string)[] // @ts-ignore
1475
1424
  ): HttpxPromise<HttpxResponse<HttpxRequestOption>> {
1476
- let userRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
1425
+ let useRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
1477
1426
  ...args
1478
1427
  );
1479
- let abortFn: Function | null = null;
1480
- let promise = new Promise<HttpxResponse<HttpxRequestOption>>(
1481
- async (resolve, reject) => {
1482
- let requestOption = this.HttpxRequestOption.getRequestOption(
1483
- "HEAD",
1484
- userRequestOption,
1485
- resolve,
1486
- reject
1487
- );
1488
- Reflect.deleteProperty(requestOption, "onprogress");
1489
- // @ts-ignore
1490
- requestOption =
1491
- this.HttpxRequestOption.removeRequestNullOption(requestOption);
1492
- const requestResult = await this.HttpxRequest.request(requestOption);
1493
- if (
1494
- requestResult != null &&
1495
- typeof requestResult.abort === "function"
1496
- ) {
1497
- abortFn = requestResult.abort;
1498
- }
1499
- }
1500
- );
1501
-
1502
- // @ts-ignore
1503
- promise.abort = () => {
1504
- if (typeof abortFn === "function") {
1505
- abortFn();
1506
- }
1507
- };
1508
- // @ts-ignore
1509
- return promise;
1428
+ useRequestOption.method = "HEAD";
1429
+ return this.request(useRequestOption, (option) => {
1430
+ Reflect.deleteProperty(option, "onprogress");
1431
+ });
1510
1432
  }
1511
1433
  /**
1512
1434
  * OPTIONS 请求
@@ -1537,39 +1459,13 @@ class Httpx {
1537
1459
  options(
1538
1460
  ...args: (HttpxRequestOption | string)[] // @ts-ignore
1539
1461
  ): HttpxPromise<HttpxResponse<HttpxRequestOption>> {
1540
- let userRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
1462
+ let useRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
1541
1463
  ...args
1542
1464
  );
1543
- let abortFn: Function | null = null;
1544
- let promise = new Promise<HttpxResponse<HttpxRequestOption>>(
1545
- async (resolve, reject) => {
1546
- let requestOption = this.HttpxRequestOption.getRequestOption(
1547
- "OPTIONS",
1548
- userRequestOption,
1549
- resolve,
1550
- reject
1551
- );
1552
- Reflect.deleteProperty(requestOption, "onprogress");
1553
- // @ts-ignore
1554
- requestOption =
1555
- this.HttpxRequestOption.removeRequestNullOption(requestOption);
1556
- const requestResult = await this.HttpxRequest.request(requestOption);
1557
- if (
1558
- requestResult != null &&
1559
- typeof requestResult.abort === "function"
1560
- ) {
1561
- abortFn = requestResult.abort;
1562
- }
1563
- }
1564
- );
1565
- // @ts-ignore
1566
- promise.abort = () => {
1567
- if (typeof abortFn === "function") {
1568
- abortFn();
1569
- }
1570
- };
1571
- // @ts-ignore
1572
- return promise;
1465
+ useRequestOption.method = "OPTIONS";
1466
+ return this.request(useRequestOption, (option) => {
1467
+ Reflect.deleteProperty(option, "onprogress");
1468
+ });
1573
1469
  }
1574
1470
 
1575
1471
  /**
@@ -1601,40 +1497,13 @@ class Httpx {
1601
1497
  delete(
1602
1498
  ...args: (HttpxRequestOption | string)[] // @ts-ignore
1603
1499
  ): HttpxPromise<HttpxResponse<HttpxRequestOption>> {
1604
- let userRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
1500
+ let useRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
1605
1501
  ...args
1606
1502
  );
1607
- let abortFn: Function | null = null;
1608
- let promise = new Promise<HttpxResponse<HttpxRequestOption>>(
1609
- async (resolve, reject) => {
1610
- let requestOption = this.HttpxRequestOption.getRequestOption(
1611
- "DELETE",
1612
- userRequestOption,
1613
- resolve,
1614
- reject
1615
- );
1616
- Reflect.deleteProperty(requestOption, "onprogress");
1617
- // @ts-ignore
1618
- requestOption =
1619
- this.HttpxRequestOption.removeRequestNullOption(requestOption);
1620
- const requestResult = await this.HttpxRequest.request(requestOption);
1621
- if (
1622
- requestResult != null &&
1623
- typeof requestResult.abort === "function"
1624
- ) {
1625
- abortFn = requestResult.abort;
1626
- }
1627
- }
1628
- );
1629
-
1630
- // @ts-ignore
1631
- promise.abort = () => {
1632
- if (typeof abortFn === "function") {
1633
- abortFn();
1634
- }
1635
- };
1636
- // @ts-ignore
1637
- return promise;
1503
+ useRequestOption.method = "DELETE";
1504
+ return this.request(useRequestOption, (option) => {
1505
+ Reflect.deleteProperty(option, "onprogress");
1506
+ });
1638
1507
  }
1639
1508
 
1640
1509
  /**
@@ -1669,15 +1538,35 @@ class Httpx {
1669
1538
  let userRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
1670
1539
  ...args
1671
1540
  );
1541
+ userRequestOption.method = "PUT";
1542
+ return this.request(userRequestOption);
1543
+ }
1544
+
1545
+ /**
1546
+ * 发送请求
1547
+ * @param details 配置
1548
+ * @param beforeRequestOption 处理请求前的配置
1549
+ */
1550
+ request<T extends HttpxRequestOption>(
1551
+ details: T,
1552
+ beforeRequestOption?: (option: Required<T>) => void
1553
+ ): HttpxPromise<HttpxResponse<T>> {
1554
+ let useRequestOption =
1555
+ this.HttpxRequestOption.handleBeforeRequestOption(details);
1556
+ /** 取消请求 */
1672
1557
  let abortFn: Function | null = null;
1673
- let promise = new Promise<HttpxResponse<HttpxRequestOption>>(
1558
+ let promise = new globalThis.Promise<HttpxResponse<HttpxRequestOption>>(
1674
1559
  async (resolve, reject) => {
1675
1560
  let requestOption = this.HttpxRequestOption.getRequestOption(
1676
- "PUT",
1677
- userRequestOption,
1561
+ useRequestOption.method!,
1562
+ useRequestOption,
1678
1563
  resolve,
1679
1564
  reject
1680
1565
  );
1566
+ if (typeof beforeRequestOption === "function") {
1567
+ // @ts-ignore
1568
+ beforeRequestOption(requestOption);
1569
+ }
1681
1570
  // @ts-ignore
1682
1571
  requestOption =
1683
1572
  this.HttpxRequestOption.removeRequestNullOption(requestOption);
package/src/Utils.ts CHANGED
@@ -31,7 +31,7 @@ class Utils {
31
31
  this.windowApi = new WindowApi(option);
32
32
  }
33
33
  /** 版本号 */
34
- version = "2025.3.25";
34
+ version = "2025.4.11";
35
35
 
36
36
  /**
37
37
  * 在页面中增加style元素,如果html节点存在子节点,添加子节点第一个,反之,添加到html节点的子节点最后一个