@whitesev/utils 2.4.2 → 2.4.3
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/LICENSE +674 -0
- package/dist/index.amd.js +66 -58
- package/dist/index.amd.js.map +1 -1
- package/dist/index.cjs.js +66 -58
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +66 -58
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +66 -58
- package/dist/index.iife.js.map +1 -1
- package/dist/index.system.js +66 -58
- package/dist/index.system.js.map +1 -1
- package/dist/index.umd.js +66 -58
- package/dist/index.umd.js.map +1 -1
- package/dist/types/src/Httpx.d.ts +3 -3
- package/package.json +1 -1
- package/src/Httpx.ts +91 -83
- package/src/Utils.ts +1 -1
|
@@ -4,7 +4,7 @@ declare class Httpx {
|
|
|
4
4
|
private GM_Api;
|
|
5
5
|
private HttpxRequestHook;
|
|
6
6
|
private HttpxResponseHook;
|
|
7
|
-
private
|
|
7
|
+
private HttpxRequestOption;
|
|
8
8
|
private HttpxCallBack;
|
|
9
9
|
private HttpxRequest;
|
|
10
10
|
/**
|
|
@@ -30,7 +30,7 @@ declare class Httpx {
|
|
|
30
30
|
* 添加拦截器
|
|
31
31
|
* @param fn 设置的请求前回调函数,如果返回配置,则使用返回的配置,如果返回null|undefined,则阻止请求
|
|
32
32
|
*/
|
|
33
|
-
use(fn: <T extends Required<HttpxRequestOption>>(details: T) => void | T): string | undefined;
|
|
33
|
+
use(fn: <T extends Required<HttpxRequestOption>>(details: T) => void | T | Promise<void | T>): string | undefined;
|
|
34
34
|
/**
|
|
35
35
|
* 移除拦截器
|
|
36
36
|
* @param id 通过use返回的id
|
|
@@ -53,7 +53,7 @@ declare class Httpx {
|
|
|
53
53
|
* @param errorFn 设置的响应后回调函数,如果返回响应,则使用返回的响应,如果返回null|undefined,则阻止响应
|
|
54
54
|
* + 超出 2xx 范围的状态码都会触发该函数
|
|
55
55
|
*/
|
|
56
|
-
use(successFn?: <T extends HttpxResponseData<HttpxRequestOption>>(response: T, details: HttpxRequestOption) => void | T, errorFn?: <T extends HttpxHookErrorData>(data: T) => void | T): string | undefined;
|
|
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
57
|
/**
|
|
58
58
|
* 移除拦截器
|
|
59
59
|
* @param id 通过use返回的id
|
package/package.json
CHANGED
package/src/Httpx.ts
CHANGED
|
@@ -23,7 +23,7 @@ class Httpx {
|
|
|
23
23
|
configList: <
|
|
24
24
|
{
|
|
25
25
|
id: string;
|
|
26
|
-
fn: Function
|
|
26
|
+
fn: Function | Promise<Function>;
|
|
27
27
|
}[]
|
|
28
28
|
>[],
|
|
29
29
|
},
|
|
@@ -33,7 +33,7 @@ class Httpx {
|
|
|
33
33
|
* @param details 当前的请求配置
|
|
34
34
|
* @private
|
|
35
35
|
*/
|
|
36
|
-
beforeRequestCallBack(details: HttpxRequestOption) {
|
|
36
|
+
async beforeRequestCallBack(details: HttpxRequestOption) {
|
|
37
37
|
if (typeof details.allowInterceptConfig === "boolean") {
|
|
38
38
|
if (!details.allowInterceptConfig) {
|
|
39
39
|
// 不允许拦截
|
|
@@ -58,7 +58,7 @@ class Httpx {
|
|
|
58
58
|
for (let index = 0; index < this.$config.configList.length; index++) {
|
|
59
59
|
let item = this.$config.configList[index];
|
|
60
60
|
if (typeof item.fn === "function") {
|
|
61
|
-
let result = item.fn(details);
|
|
61
|
+
let result = await item.fn(details);
|
|
62
62
|
if (result == null) {
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
@@ -114,8 +114,8 @@ class Httpx {
|
|
|
114
114
|
configList: <
|
|
115
115
|
{
|
|
116
116
|
id: string;
|
|
117
|
-
successFn?: Function
|
|
118
|
-
errorFn?: Function
|
|
117
|
+
successFn?: Function | Promise<Function>;
|
|
118
|
+
errorFn?: Function | Promise<Function>;
|
|
119
119
|
}[]
|
|
120
120
|
>[],
|
|
121
121
|
},
|
|
@@ -124,7 +124,7 @@ class Httpx {
|
|
|
124
124
|
* @param response 响应
|
|
125
125
|
* @param details 请求的配置
|
|
126
126
|
*/
|
|
127
|
-
successResponseCallBack(
|
|
127
|
+
async successResponseCallBack(
|
|
128
128
|
response: HttpxResponseData<HttpxRequestOption>,
|
|
129
129
|
details: HttpxRequestOption
|
|
130
130
|
) {
|
|
@@ -153,7 +153,8 @@ class Httpx {
|
|
|
153
153
|
for (let index = 0; index < this.$config.configList.length; index++) {
|
|
154
154
|
let item = this.$config.configList[index];
|
|
155
155
|
if (typeof item.successFn === "function") {
|
|
156
|
-
|
|
156
|
+
let result = await item.successFn(response, details);
|
|
157
|
+
if (result == null) {
|
|
157
158
|
return;
|
|
158
159
|
}
|
|
159
160
|
}
|
|
@@ -166,9 +167,7 @@ class Httpx {
|
|
|
166
167
|
* @returns
|
|
167
168
|
* 返回null|undefined就是拦截掉了
|
|
168
169
|
*/
|
|
169
|
-
errorResponseCallBack<T extends HttpxHookErrorData>(
|
|
170
|
-
data: T
|
|
171
|
-
): T | null | undefined {
|
|
170
|
+
async errorResponseCallBack<T extends HttpxHookErrorData>(data: T) {
|
|
172
171
|
if (typeof data.details.allowInterceptConfig === "boolean") {
|
|
173
172
|
if (!data.details.allowInterceptConfig) {
|
|
174
173
|
// 不允许拦截
|
|
@@ -194,7 +193,8 @@ class Httpx {
|
|
|
194
193
|
for (let index = 0; index < this.$config.configList.length; index++) {
|
|
195
194
|
let item = this.$config.configList[index];
|
|
196
195
|
if (typeof item.errorFn === "function") {
|
|
197
|
-
|
|
196
|
+
let result = await item.errorFn(data);
|
|
197
|
+
if (result == null) {
|
|
198
198
|
return;
|
|
199
199
|
}
|
|
200
200
|
}
|
|
@@ -236,7 +236,7 @@ class Httpx {
|
|
|
236
236
|
this.$config.configList = [];
|
|
237
237
|
},
|
|
238
238
|
};
|
|
239
|
-
private
|
|
239
|
+
private HttpxRequestOption = {
|
|
240
240
|
context: this,
|
|
241
241
|
/**
|
|
242
242
|
* 根据传入的参数处理获取details配置
|
|
@@ -670,7 +670,7 @@ class Httpx {
|
|
|
670
670
|
* @param reject 抛出错误
|
|
671
671
|
* @param argsResult 返回的参数列表
|
|
672
672
|
*/
|
|
673
|
-
onAbort(
|
|
673
|
+
async onAbort(
|
|
674
674
|
details: Required<HttpxRequestOption>,
|
|
675
675
|
resolve: (resultOption: HttpxResponse<HttpxRequestOption>) => void,
|
|
676
676
|
reject: (...args: any[]) => void,
|
|
@@ -687,12 +687,12 @@ class Httpx {
|
|
|
687
687
|
response = response[0];
|
|
688
688
|
}
|
|
689
689
|
if (
|
|
690
|
-
this.context.HttpxResponseHook.errorResponseCallBack({
|
|
690
|
+
(await this.context.HttpxResponseHook.errorResponseCallBack({
|
|
691
691
|
type: "onabort",
|
|
692
692
|
error: new TypeError("request canceled"),
|
|
693
693
|
response: null,
|
|
694
694
|
details: details,
|
|
695
|
-
}) == null
|
|
695
|
+
})) == null
|
|
696
696
|
) {
|
|
697
697
|
// reject(new TypeError("response is intercept with onabort"));
|
|
698
698
|
return;
|
|
@@ -706,7 +706,6 @@ class Httpx {
|
|
|
706
706
|
type: "onabort",
|
|
707
707
|
});
|
|
708
708
|
},
|
|
709
|
-
|
|
710
709
|
/**
|
|
711
710
|
* onerror请求异常-触发
|
|
712
711
|
* @param details 配置
|
|
@@ -714,7 +713,7 @@ class Httpx {
|
|
|
714
713
|
* @param reject 抛出错误
|
|
715
714
|
* @param argsResult 返回的参数列表
|
|
716
715
|
*/
|
|
717
|
-
onError(
|
|
716
|
+
async onError(
|
|
718
717
|
details: Required<HttpxRequestOption>,
|
|
719
718
|
resolve: (resultOption: HttpxResponse<HttpxRequestOption>) => void,
|
|
720
719
|
reject: (...args: any[]) => void,
|
|
@@ -731,12 +730,12 @@ class Httpx {
|
|
|
731
730
|
response = response[0];
|
|
732
731
|
}
|
|
733
732
|
if (
|
|
734
|
-
this.context.HttpxResponseHook.errorResponseCallBack({
|
|
733
|
+
(await this.context.HttpxResponseHook.errorResponseCallBack({
|
|
735
734
|
type: "onerror",
|
|
736
735
|
error: new TypeError("request error"),
|
|
737
736
|
response: response,
|
|
738
737
|
details: details,
|
|
739
|
-
}) == null
|
|
738
|
+
})) == null
|
|
740
739
|
) {
|
|
741
740
|
// reject(new TypeError("response is intercept with onerror"));
|
|
742
741
|
return;
|
|
@@ -757,7 +756,7 @@ class Httpx {
|
|
|
757
756
|
* @param reject 抛出错误
|
|
758
757
|
* @param argsResult 返回的参数列表
|
|
759
758
|
*/
|
|
760
|
-
onTimeout(
|
|
759
|
+
async onTimeout(
|
|
761
760
|
details: Required<HttpxRequestOption>,
|
|
762
761
|
resolve: (resultOption: HttpxResponse<HttpxRequestOption>) => void,
|
|
763
762
|
reject: (...args: any[]) => void,
|
|
@@ -774,12 +773,12 @@ class Httpx {
|
|
|
774
773
|
response = response[0];
|
|
775
774
|
}
|
|
776
775
|
if (
|
|
777
|
-
this.context.HttpxResponseHook.errorResponseCallBack({
|
|
776
|
+
(await this.context.HttpxResponseHook.errorResponseCallBack({
|
|
778
777
|
type: "ontimeout",
|
|
779
778
|
error: new TypeError("request timeout"),
|
|
780
779
|
response: (argsResult || [null])[0],
|
|
781
780
|
details: details,
|
|
782
|
-
}) == null
|
|
781
|
+
})) == null
|
|
783
782
|
) {
|
|
784
783
|
// reject(new TypeError("response is intercept with ontimeout"));
|
|
785
784
|
return;
|
|
@@ -814,7 +813,7 @@ class Httpx {
|
|
|
814
813
|
* @param reject 抛出错误
|
|
815
814
|
* @param argsResult 返回的参数列表
|
|
816
815
|
*/
|
|
817
|
-
onLoad(
|
|
816
|
+
async onLoad(
|
|
818
817
|
details: Required<HttpxRequestOption>,
|
|
819
818
|
resolve: (resultOption: HttpxResponse<HttpxRequestOption>) => void,
|
|
820
819
|
reject: (...args: any[]) => void,
|
|
@@ -907,10 +906,10 @@ class Httpx {
|
|
|
907
906
|
/* 状态码2xx都是成功的 */
|
|
908
907
|
if (Math.floor(originResponse.status / 100) === 2) {
|
|
909
908
|
if (
|
|
910
|
-
this.context.HttpxResponseHook.successResponseCallBack(
|
|
909
|
+
(await this.context.HttpxResponseHook.successResponseCallBack(
|
|
911
910
|
originResponse,
|
|
912
911
|
details
|
|
913
|
-
) == null
|
|
912
|
+
)) == null
|
|
914
913
|
) {
|
|
915
914
|
// reject(new TypeError("response is intercept with onloada"));
|
|
916
915
|
return;
|
|
@@ -971,7 +970,7 @@ class Httpx {
|
|
|
971
970
|
* 发送请求
|
|
972
971
|
* @param details
|
|
973
972
|
*/
|
|
974
|
-
request(details: Required<HttpxRequestOption>) {
|
|
973
|
+
async request(details: Required<HttpxRequestOption>) {
|
|
975
974
|
if (this.context.#LOG_DETAILS) {
|
|
976
975
|
console.log("[Httpx-HttpxRequest.request] 请求前的配置👇", details);
|
|
977
976
|
}
|
|
@@ -980,7 +979,7 @@ class Httpx {
|
|
|
980
979
|
"function"
|
|
981
980
|
) {
|
|
982
981
|
let hookResult =
|
|
983
|
-
this.context.HttpxRequestHook.beforeRequestCallBack(details);
|
|
982
|
+
await this.context.HttpxRequestHook.beforeRequestCallBack(details);
|
|
984
983
|
if (hookResult == null) {
|
|
985
984
|
return;
|
|
986
985
|
}
|
|
@@ -991,7 +990,7 @@ class Httpx {
|
|
|
991
990
|
fetchOption: fetchOption,
|
|
992
991
|
fetchRequestOption: fetchRequestOption,
|
|
993
992
|
abortController,
|
|
994
|
-
} = this.context.
|
|
993
|
+
} = this.context.HttpxRequestOption.handleFetchOption(details);
|
|
995
994
|
return this.fetch(fetchOption, fetchRequestOption, abortController);
|
|
996
995
|
} else {
|
|
997
996
|
// 使用GM_xmlHttpRequest请求
|
|
@@ -1226,7 +1225,7 @@ class Httpx {
|
|
|
1226
1225
|
/**
|
|
1227
1226
|
* 拦截器
|
|
1228
1227
|
*/
|
|
1229
|
-
|
|
1228
|
+
interceptors = {
|
|
1230
1229
|
/**
|
|
1231
1230
|
* 请求拦截器
|
|
1232
1231
|
*/
|
|
@@ -1237,7 +1236,9 @@ class Httpx {
|
|
|
1237
1236
|
* @param fn 设置的请求前回调函数,如果返回配置,则使用返回的配置,如果返回null|undefined,则阻止请求
|
|
1238
1237
|
*/
|
|
1239
1238
|
use(
|
|
1240
|
-
fn: <T extends Required<HttpxRequestOption>>(
|
|
1239
|
+
fn: <T extends Required<HttpxRequestOption>>(
|
|
1240
|
+
details: T
|
|
1241
|
+
) => void | T | Promise<void | T>
|
|
1241
1242
|
) {
|
|
1242
1243
|
if (typeof fn !== "function") {
|
|
1243
1244
|
console.warn("[Httpx-interceptors-request] 请传入拦截器函数");
|
|
@@ -1276,7 +1277,9 @@ class Httpx {
|
|
|
1276
1277
|
response: T,
|
|
1277
1278
|
details: HttpxRequestOption
|
|
1278
1279
|
) => void | T,
|
|
1279
|
-
errorFn?: <T extends HttpxHookErrorData>(
|
|
1280
|
+
errorFn?: <T extends HttpxHookErrorData>(
|
|
1281
|
+
data: T
|
|
1282
|
+
) => void | T | Promise<void | T>
|
|
1280
1283
|
) {
|
|
1281
1284
|
if (typeof successFn !== "function" && typeof errorFn !== "function") {
|
|
1282
1285
|
console.warn("[Httpx-interceptors-response] 必须传入一个拦截器函数");
|
|
@@ -1310,14 +1313,14 @@ class Httpx {
|
|
|
1310
1313
|
* GET 请求
|
|
1311
1314
|
* @param url 网址
|
|
1312
1315
|
*/
|
|
1313
|
-
|
|
1316
|
+
get<T extends HttpxRequestOption>(
|
|
1314
1317
|
url: string // @ts-ignore
|
|
1315
1318
|
): HttpxPromise<HttpxResponse<T>>;
|
|
1316
1319
|
/**
|
|
1317
1320
|
* GET 请求
|
|
1318
1321
|
* @param details 配置
|
|
1319
1322
|
*/
|
|
1320
|
-
|
|
1323
|
+
get<T extends HttpxRequestOption>(
|
|
1321
1324
|
details: T // @ts-ignore
|
|
1322
1325
|
): HttpxPromise<HttpxResponse<T>>;
|
|
1323
1326
|
/**
|
|
@@ -1325,7 +1328,7 @@ class Httpx {
|
|
|
1325
1328
|
* @param url 网址
|
|
1326
1329
|
* @param details 配置
|
|
1327
1330
|
*/
|
|
1328
|
-
|
|
1331
|
+
get<T extends HttpxRequestOption>(
|
|
1329
1332
|
url: string,
|
|
1330
1333
|
details: T // @ts-ignore
|
|
1331
1334
|
): HttpxPromise<HttpxResponse<T>>;
|
|
@@ -1334,24 +1337,24 @@ class Httpx {
|
|
|
1334
1337
|
* @param url 网址
|
|
1335
1338
|
* @param details 配置
|
|
1336
1339
|
*/
|
|
1337
|
-
|
|
1340
|
+
get(
|
|
1338
1341
|
...args: (string | HttpxRequestOption)[] // @ts-ignore
|
|
1339
1342
|
): HttpxPromise<HttpxResponse<HttpxRequestOption>> {
|
|
1340
|
-
let userRequestOption = this.
|
|
1343
|
+
let userRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
|
|
1341
1344
|
...args
|
|
1342
1345
|
);
|
|
1343
1346
|
let abortFn: Function | null = null;
|
|
1344
1347
|
let promise = new globalThis.Promise<HttpxResponse<HttpxRequestOption>>(
|
|
1345
|
-
(resolve, reject) => {
|
|
1346
|
-
let requestOption = this.
|
|
1348
|
+
async (resolve, reject) => {
|
|
1349
|
+
let requestOption = this.HttpxRequestOption.getRequestOption(
|
|
1347
1350
|
"GET",
|
|
1348
1351
|
userRequestOption,
|
|
1349
1352
|
resolve,
|
|
1350
1353
|
reject
|
|
1351
1354
|
);
|
|
1352
1355
|
Reflect.deleteProperty(requestOption, "onprogress");
|
|
1353
|
-
this.
|
|
1354
|
-
const requestResult = this.HttpxRequest.request(requestOption);
|
|
1356
|
+
this.HttpxRequestOption.removeRequestNullOption(requestOption);
|
|
1357
|
+
const requestResult = await this.HttpxRequest.request(requestOption);
|
|
1355
1358
|
if (
|
|
1356
1359
|
requestResult != null &&
|
|
1357
1360
|
typeof requestResult.abort === "function"
|
|
@@ -1366,20 +1369,21 @@ class Httpx {
|
|
|
1366
1369
|
abortFn();
|
|
1367
1370
|
}
|
|
1368
1371
|
};
|
|
1372
|
+
// @ts-ignore
|
|
1369
1373
|
return promise;
|
|
1370
1374
|
}
|
|
1371
1375
|
/**
|
|
1372
1376
|
* POST 请求
|
|
1373
1377
|
* @param details 配置
|
|
1374
1378
|
*/
|
|
1375
|
-
|
|
1379
|
+
post<T extends HttpxRequestOption>(
|
|
1376
1380
|
details: T // @ts-ignore
|
|
1377
1381
|
): HttpxPromise<HttpxResponse<T>>;
|
|
1378
1382
|
/**
|
|
1379
1383
|
* POST 请求
|
|
1380
1384
|
* @param url 网址
|
|
1381
1385
|
*/
|
|
1382
|
-
|
|
1386
|
+
post<T extends HttpxRequestOption>(
|
|
1383
1387
|
url: string
|
|
1384
1388
|
): // @ts-ignore
|
|
1385
1389
|
HttpxPromise<HttpxResponse<T>>;
|
|
@@ -1388,23 +1392,23 @@ class Httpx {
|
|
|
1388
1392
|
* @param url 网址
|
|
1389
1393
|
* @param details 配置
|
|
1390
1394
|
*/
|
|
1391
|
-
|
|
1395
|
+
post<T extends HttpxRequestOption>(
|
|
1392
1396
|
url: string,
|
|
1393
1397
|
details: T // @ts-ignore
|
|
1394
1398
|
): HttpxPromise<HttpxResponse<T>>;
|
|
1395
1399
|
/**
|
|
1396
1400
|
* POST 请求
|
|
1397
1401
|
*/
|
|
1398
|
-
|
|
1402
|
+
post(
|
|
1399
1403
|
...args: (HttpxRequestOption | string)[] // @ts-ignore
|
|
1400
1404
|
): HttpxPromise<HttpxResponse<HttpxRequestOption>> {
|
|
1401
|
-
let userRequestOption = this.
|
|
1405
|
+
let userRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
|
|
1402
1406
|
...args
|
|
1403
1407
|
);
|
|
1404
1408
|
let abortFn: Function | null = null;
|
|
1405
1409
|
let promise = new Promise<HttpxResponse<HttpxRequestOption>>(
|
|
1406
|
-
(resolve, reject) => {
|
|
1407
|
-
let requestOption = this.
|
|
1410
|
+
async (resolve, reject) => {
|
|
1411
|
+
let requestOption = this.HttpxRequestOption.getRequestOption(
|
|
1408
1412
|
"POST",
|
|
1409
1413
|
userRequestOption,
|
|
1410
1414
|
resolve,
|
|
@@ -1412,8 +1416,8 @@ class Httpx {
|
|
|
1412
1416
|
);
|
|
1413
1417
|
// @ts-ignore
|
|
1414
1418
|
requestOption =
|
|
1415
|
-
this.
|
|
1416
|
-
const requestResult = this.HttpxRequest.request(requestOption);
|
|
1419
|
+
this.HttpxRequestOption.removeRequestNullOption(requestOption);
|
|
1420
|
+
const requestResult = await this.HttpxRequest.request(requestOption);
|
|
1417
1421
|
if (
|
|
1418
1422
|
requestResult != null &&
|
|
1419
1423
|
typeof requestResult.abort === "function"
|
|
@@ -1428,20 +1432,21 @@ class Httpx {
|
|
|
1428
1432
|
abortFn();
|
|
1429
1433
|
}
|
|
1430
1434
|
};
|
|
1435
|
+
// @ts-ignore
|
|
1431
1436
|
return promise;
|
|
1432
1437
|
}
|
|
1433
1438
|
/**
|
|
1434
1439
|
* HEAD 请求
|
|
1435
1440
|
* @param details 配置
|
|
1436
1441
|
*/
|
|
1437
|
-
|
|
1442
|
+
head<T extends HttpxRequestOption>(
|
|
1438
1443
|
details: T // @ts-ignore
|
|
1439
1444
|
): HttpxPromise<HttpxResponse<T>>;
|
|
1440
1445
|
/**
|
|
1441
1446
|
* HEAD 请求
|
|
1442
1447
|
* @param url 网址
|
|
1443
1448
|
*/
|
|
1444
|
-
|
|
1449
|
+
head<T extends HttpxRequestOption>(
|
|
1445
1450
|
url: string // @ts-ignore
|
|
1446
1451
|
): HttpxPromise<HttpxResponse<T>>;
|
|
1447
1452
|
/**
|
|
@@ -1449,23 +1454,23 @@ class Httpx {
|
|
|
1449
1454
|
* @param url 网址
|
|
1450
1455
|
* @param details 配置
|
|
1451
1456
|
*/
|
|
1452
|
-
|
|
1457
|
+
head<T extends HttpxRequestOption>(
|
|
1453
1458
|
url: string,
|
|
1454
1459
|
details: T // @ts-ignore
|
|
1455
1460
|
): HttpxPromise<HttpxResponse<T>>;
|
|
1456
1461
|
/**
|
|
1457
1462
|
* HEAD 请求
|
|
1458
1463
|
*/
|
|
1459
|
-
|
|
1464
|
+
head(
|
|
1460
1465
|
...args: (HttpxRequestOption | string)[] // @ts-ignore
|
|
1461
1466
|
): HttpxPromise<HttpxResponse<HttpxRequestOption>> {
|
|
1462
|
-
let userRequestOption = this.
|
|
1467
|
+
let userRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
|
|
1463
1468
|
...args
|
|
1464
1469
|
);
|
|
1465
1470
|
let abortFn: Function | null = null;
|
|
1466
1471
|
let promise = new Promise<HttpxResponse<HttpxRequestOption>>(
|
|
1467
|
-
(resolve, reject) => {
|
|
1468
|
-
let requestOption = this.
|
|
1472
|
+
async (resolve, reject) => {
|
|
1473
|
+
let requestOption = this.HttpxRequestOption.getRequestOption(
|
|
1469
1474
|
"HEAD",
|
|
1470
1475
|
userRequestOption,
|
|
1471
1476
|
resolve,
|
|
@@ -1474,8 +1479,8 @@ class Httpx {
|
|
|
1474
1479
|
Reflect.deleteProperty(requestOption, "onprogress");
|
|
1475
1480
|
// @ts-ignore
|
|
1476
1481
|
requestOption =
|
|
1477
|
-
this.
|
|
1478
|
-
const requestResult = this.HttpxRequest.request(requestOption);
|
|
1482
|
+
this.HttpxRequestOption.removeRequestNullOption(requestOption);
|
|
1483
|
+
const requestResult = await this.HttpxRequest.request(requestOption);
|
|
1479
1484
|
if (
|
|
1480
1485
|
requestResult != null &&
|
|
1481
1486
|
typeof requestResult.abort === "function"
|
|
@@ -1491,9 +1496,9 @@ class Httpx {
|
|
|
1491
1496
|
abortFn();
|
|
1492
1497
|
}
|
|
1493
1498
|
};
|
|
1499
|
+
// @ts-ignore
|
|
1494
1500
|
return promise;
|
|
1495
1501
|
}
|
|
1496
|
-
|
|
1497
1502
|
/**
|
|
1498
1503
|
* OPTIONS 请求
|
|
1499
1504
|
* @param details 配置
|
|
@@ -1520,16 +1525,16 @@ class Httpx {
|
|
|
1520
1525
|
/**
|
|
1521
1526
|
* OPTIONS 请求
|
|
1522
1527
|
*/
|
|
1523
|
-
|
|
1528
|
+
options(
|
|
1524
1529
|
...args: (HttpxRequestOption | string)[] // @ts-ignore
|
|
1525
1530
|
): HttpxPromise<HttpxResponse<HttpxRequestOption>> {
|
|
1526
|
-
let userRequestOption = this.
|
|
1531
|
+
let userRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
|
|
1527
1532
|
...args
|
|
1528
1533
|
);
|
|
1529
1534
|
let abortFn: Function | null = null;
|
|
1530
1535
|
let promise = new Promise<HttpxResponse<HttpxRequestOption>>(
|
|
1531
|
-
(resolve, reject) => {
|
|
1532
|
-
let requestOption = this.
|
|
1536
|
+
async (resolve, reject) => {
|
|
1537
|
+
let requestOption = this.HttpxRequestOption.getRequestOption(
|
|
1533
1538
|
"OPTIONS",
|
|
1534
1539
|
userRequestOption,
|
|
1535
1540
|
resolve,
|
|
@@ -1538,8 +1543,8 @@ class Httpx {
|
|
|
1538
1543
|
Reflect.deleteProperty(requestOption, "onprogress");
|
|
1539
1544
|
// @ts-ignore
|
|
1540
1545
|
requestOption =
|
|
1541
|
-
this.
|
|
1542
|
-
const requestResult = this.HttpxRequest.request(requestOption);
|
|
1546
|
+
this.HttpxRequestOption.removeRequestNullOption(requestOption);
|
|
1547
|
+
const requestResult = await this.HttpxRequest.request(requestOption);
|
|
1543
1548
|
if (
|
|
1544
1549
|
requestResult != null &&
|
|
1545
1550
|
typeof requestResult.abort === "function"
|
|
@@ -1554,6 +1559,7 @@ class Httpx {
|
|
|
1554
1559
|
abortFn();
|
|
1555
1560
|
}
|
|
1556
1561
|
};
|
|
1562
|
+
// @ts-ignore
|
|
1557
1563
|
return promise;
|
|
1558
1564
|
}
|
|
1559
1565
|
|
|
@@ -1561,14 +1567,14 @@ class Httpx {
|
|
|
1561
1567
|
* DELETE 请求
|
|
1562
1568
|
* @param details 配置
|
|
1563
1569
|
*/
|
|
1564
|
-
|
|
1570
|
+
delete<T extends HttpxRequestOption>(
|
|
1565
1571
|
details: T // @ts-ignore
|
|
1566
1572
|
): HttpxPromise<HttpxResponse<T>>;
|
|
1567
1573
|
/**
|
|
1568
1574
|
* DELETE 请求
|
|
1569
1575
|
* @param url 网址
|
|
1570
1576
|
*/
|
|
1571
|
-
|
|
1577
|
+
delete<T extends HttpxRequestOption>(
|
|
1572
1578
|
url: string // @ts-ignore
|
|
1573
1579
|
): HttpxPromise<HttpxResponse<T>>;
|
|
1574
1580
|
/**
|
|
@@ -1576,23 +1582,23 @@ class Httpx {
|
|
|
1576
1582
|
* @param url 网址
|
|
1577
1583
|
* @param details 配置
|
|
1578
1584
|
*/
|
|
1579
|
-
|
|
1585
|
+
delete<T extends HttpxRequestOption>(
|
|
1580
1586
|
url: string,
|
|
1581
1587
|
details: T // @ts-ignore
|
|
1582
1588
|
): HttpxPromise<HttpxResponse<T>>;
|
|
1583
1589
|
/**
|
|
1584
1590
|
* DELETE 请求
|
|
1585
1591
|
*/
|
|
1586
|
-
|
|
1592
|
+
delete(
|
|
1587
1593
|
...args: (HttpxRequestOption | string)[] // @ts-ignore
|
|
1588
1594
|
): HttpxPromise<HttpxResponse<HttpxRequestOption>> {
|
|
1589
|
-
let userRequestOption = this.
|
|
1595
|
+
let userRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
|
|
1590
1596
|
...args
|
|
1591
1597
|
);
|
|
1592
1598
|
let abortFn: Function | null = null;
|
|
1593
1599
|
let promise = new Promise<HttpxResponse<HttpxRequestOption>>(
|
|
1594
|
-
(resolve, reject) => {
|
|
1595
|
-
let requestOption = this.
|
|
1600
|
+
async (resolve, reject) => {
|
|
1601
|
+
let requestOption = this.HttpxRequestOption.getRequestOption(
|
|
1596
1602
|
"DELETE",
|
|
1597
1603
|
userRequestOption,
|
|
1598
1604
|
resolve,
|
|
@@ -1601,8 +1607,8 @@ class Httpx {
|
|
|
1601
1607
|
Reflect.deleteProperty(requestOption, "onprogress");
|
|
1602
1608
|
// @ts-ignore
|
|
1603
1609
|
requestOption =
|
|
1604
|
-
this.
|
|
1605
|
-
const requestResult = this.HttpxRequest.request(requestOption);
|
|
1610
|
+
this.HttpxRequestOption.removeRequestNullOption(requestOption);
|
|
1611
|
+
const requestResult = await this.HttpxRequest.request(requestOption);
|
|
1606
1612
|
if (
|
|
1607
1613
|
requestResult != null &&
|
|
1608
1614
|
typeof requestResult.abort === "function"
|
|
@@ -1618,6 +1624,7 @@ class Httpx {
|
|
|
1618
1624
|
abortFn();
|
|
1619
1625
|
}
|
|
1620
1626
|
};
|
|
1627
|
+
// @ts-ignore
|
|
1621
1628
|
return promise;
|
|
1622
1629
|
}
|
|
1623
1630
|
|
|
@@ -1625,14 +1632,14 @@ class Httpx {
|
|
|
1625
1632
|
* PUT 请求
|
|
1626
1633
|
* @param details 配置
|
|
1627
1634
|
*/
|
|
1628
|
-
|
|
1635
|
+
put<T extends HttpxRequestOption>(
|
|
1629
1636
|
details: T // @ts-ignore
|
|
1630
1637
|
): HttpxPromise<HttpxResponse<T>>;
|
|
1631
1638
|
/**
|
|
1632
1639
|
* PUT 请求
|
|
1633
1640
|
* @param url 网址
|
|
1634
1641
|
*/
|
|
1635
|
-
|
|
1642
|
+
put<T extends HttpxRequestOption>(
|
|
1636
1643
|
url: string // @ts-ignore
|
|
1637
1644
|
): HttpxPromise<HttpxResponse<T>>;
|
|
1638
1645
|
/**
|
|
@@ -1640,23 +1647,23 @@ class Httpx {
|
|
|
1640
1647
|
* @param url 网址
|
|
1641
1648
|
* @param details 配置
|
|
1642
1649
|
*/
|
|
1643
|
-
|
|
1650
|
+
put<T extends HttpxRequestOption>(
|
|
1644
1651
|
url: string,
|
|
1645
1652
|
details: T // @ts-ignore
|
|
1646
1653
|
): HttpxPromise<HttpxResponse<T>>;
|
|
1647
1654
|
/**
|
|
1648
1655
|
* PUT 请求
|
|
1649
1656
|
*/
|
|
1650
|
-
|
|
1657
|
+
put(
|
|
1651
1658
|
...args: (HttpxRequestOption | string)[] // @ts-ignore
|
|
1652
1659
|
): HttpxPromise<HttpxResponse<HttpxRequestOption>> {
|
|
1653
|
-
let userRequestOption = this.
|
|
1660
|
+
let userRequestOption = this.HttpxRequestOption.handleBeforeRequestOption(
|
|
1654
1661
|
...args
|
|
1655
1662
|
);
|
|
1656
1663
|
let abortFn: Function | null = null;
|
|
1657
1664
|
let promise = new Promise<HttpxResponse<HttpxRequestOption>>(
|
|
1658
|
-
(resolve, reject) => {
|
|
1659
|
-
let requestOption = this.
|
|
1665
|
+
async (resolve, reject) => {
|
|
1666
|
+
let requestOption = this.HttpxRequestOption.getRequestOption(
|
|
1660
1667
|
"PUT",
|
|
1661
1668
|
userRequestOption,
|
|
1662
1669
|
resolve,
|
|
@@ -1664,8 +1671,8 @@ class Httpx {
|
|
|
1664
1671
|
);
|
|
1665
1672
|
// @ts-ignore
|
|
1666
1673
|
requestOption =
|
|
1667
|
-
this.
|
|
1668
|
-
const requestResult = this.HttpxRequest.request(requestOption);
|
|
1674
|
+
this.HttpxRequestOption.removeRequestNullOption(requestOption);
|
|
1675
|
+
const requestResult = await this.HttpxRequest.request(requestOption);
|
|
1669
1676
|
if (
|
|
1670
1677
|
requestResult != null &&
|
|
1671
1678
|
typeof requestResult.abort === "function"
|
|
@@ -1680,6 +1687,7 @@ class Httpx {
|
|
|
1680
1687
|
abortFn();
|
|
1681
1688
|
}
|
|
1682
1689
|
};
|
|
1690
|
+
// @ts-ignore
|
|
1683
1691
|
return promise;
|
|
1684
1692
|
}
|
|
1685
1693
|
}
|