@whitesev/utils 2.2.1 → 2.2.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/dist/index.amd.js +177 -40
- package/dist/index.amd.js.map +1 -1
- package/dist/index.cjs.js +177 -40
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +177 -40
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +177 -40
- package/dist/index.iife.js.map +1 -1
- package/dist/index.system.js +177 -40
- package/dist/index.system.js.map +1 -1
- package/dist/index.umd.js +177 -40
- package/dist/index.umd.js.map +1 -1
- package/dist/types/src/Httpx.d.ts +23 -13
- package/dist/types/src/Utils.d.ts +8 -1
- package/package.json +1 -1
- package/src/Httpx.ts +239 -104
- package/src/Utils.ts +48 -1
|
@@ -1124,6 +1124,12 @@ export declare interface HttpxHookErrorData {
|
|
|
1124
1124
|
error: Error;
|
|
1125
1125
|
response: any;
|
|
1126
1126
|
}
|
|
1127
|
+
export type HttpxPromise<T> = Promise<T> & {
|
|
1128
|
+
/**
|
|
1129
|
+
* 用于取消发送的请求,并执行resolve返回abort
|
|
1130
|
+
*/
|
|
1131
|
+
abort(): void;
|
|
1132
|
+
};
|
|
1127
1133
|
declare class Httpx {
|
|
1128
1134
|
#private;
|
|
1129
1135
|
private GM_Api;
|
|
@@ -1132,6 +1138,10 @@ declare class Httpx {
|
|
|
1132
1138
|
private HttpxRequestDetails;
|
|
1133
1139
|
private HttpxCallBack;
|
|
1134
1140
|
private HttpxRequest;
|
|
1141
|
+
/**
|
|
1142
|
+
* 实例化,可传入GM_xmlhttpRequest,未传入则使用window.fetch
|
|
1143
|
+
* @param __xmlHttpRequest__
|
|
1144
|
+
*/
|
|
1135
1145
|
constructor(__xmlHttpRequest__?: any);
|
|
1136
1146
|
/**
|
|
1137
1147
|
* 覆盖全局配置
|
|
@@ -1195,69 +1205,69 @@ declare class Httpx {
|
|
|
1195
1205
|
setXMLHttpRequest(httpRequest: any): void;
|
|
1196
1206
|
/**
|
|
1197
1207
|
* GET 请求
|
|
1208
|
+
* @param url 网址
|
|
1198
1209
|
* @param details 配置
|
|
1199
1210
|
*/
|
|
1200
|
-
get<T extends HttpxDetails>(details: T):
|
|
1211
|
+
get<T extends HttpxDetails>(url: string, details: T): HttpxPromise<HttpxAsyncResult<T>>;
|
|
1201
1212
|
/**
|
|
1202
1213
|
* GET 请求
|
|
1203
|
-
* @param url 网址
|
|
1204
1214
|
* @param details 配置
|
|
1205
1215
|
*/
|
|
1206
|
-
get<T extends HttpxDetails>(
|
|
1216
|
+
get<T extends HttpxDetails>(details: T): HttpxPromise<HttpxAsyncResult<T>>;
|
|
1207
1217
|
/**
|
|
1208
1218
|
* POST 请求
|
|
1209
1219
|
* @param details 配置
|
|
1210
1220
|
*/
|
|
1211
|
-
post<T extends HttpxDetails>(details: T):
|
|
1221
|
+
post<T extends HttpxDetails>(details: T): HttpxPromise<HttpxAsyncResult<T>>;
|
|
1212
1222
|
/**
|
|
1213
1223
|
* POST 请求
|
|
1214
1224
|
* @param url 网址
|
|
1215
1225
|
* @param details 配置
|
|
1216
1226
|
*/
|
|
1217
|
-
post<T extends HttpxDetails>(url: string, details: T):
|
|
1227
|
+
post<T extends HttpxDetails>(url: string, details: T): HttpxPromise<HttpxAsyncResult<T>>;
|
|
1218
1228
|
/**
|
|
1219
1229
|
* HEAD 请求
|
|
1220
1230
|
* @param details 配置
|
|
1221
1231
|
*/
|
|
1222
|
-
head<T extends HttpxDetails>(details: T):
|
|
1232
|
+
head<T extends HttpxDetails>(details: T): HttpxPromise<HttpxAsyncResult<T>>;
|
|
1223
1233
|
/**
|
|
1224
1234
|
* HEAD 请求
|
|
1225
1235
|
* @param url 网址
|
|
1226
1236
|
* @param details 配置
|
|
1227
1237
|
*/
|
|
1228
|
-
head<T extends HttpxDetails>(url: string, details: T):
|
|
1238
|
+
head<T extends HttpxDetails>(url: string, details: T): HttpxPromise<HttpxAsyncResult<T>>;
|
|
1229
1239
|
/**
|
|
1230
1240
|
* OPTIONS 请求
|
|
1231
1241
|
* @param details 配置
|
|
1232
1242
|
*/
|
|
1233
|
-
options<T extends HttpxDetails>(details: T):
|
|
1243
|
+
options<T extends HttpxDetails>(details: T): HttpxPromise<HttpxAsyncResult<T>>;
|
|
1234
1244
|
/**
|
|
1235
1245
|
* OPTIONS 请求
|
|
1236
1246
|
* @param url 网址
|
|
1237
1247
|
* @param details 配置
|
|
1238
1248
|
*/
|
|
1239
|
-
options<T extends HttpxDetails>(url: string, details: T):
|
|
1249
|
+
options<T extends HttpxDetails>(url: string, details: T): HttpxPromise<HttpxAsyncResult<T>>;
|
|
1240
1250
|
/**
|
|
1241
1251
|
* DELETE 请求
|
|
1242
1252
|
* @param details 配置
|
|
1243
1253
|
*/
|
|
1244
|
-
delete<T extends HttpxDetails>(details: T):
|
|
1254
|
+
delete<T extends HttpxDetails>(details: T): HttpxPromise<HttpxAsyncResult<T>>;
|
|
1245
1255
|
/**
|
|
1246
1256
|
* DELETE 请求
|
|
1247
1257
|
* @param url 网址
|
|
1248
1258
|
* @param details 配置
|
|
1249
1259
|
*/
|
|
1250
|
-
delete<T extends HttpxDetails>(url: string, details: T):
|
|
1260
|
+
delete<T extends HttpxDetails>(url: string, details: T): HttpxPromise<HttpxAsyncResult<T>>;
|
|
1251
1261
|
/**
|
|
1252
1262
|
* PUT 请求
|
|
1253
1263
|
* @param details 配置
|
|
1254
1264
|
*/
|
|
1255
|
-
put<T extends HttpxDetails>(details: T):
|
|
1265
|
+
put<T extends HttpxDetails>(details: T): HttpxPromise<HttpxAsyncResult<T>>;
|
|
1256
1266
|
/**
|
|
1257
1267
|
* PUT 请求
|
|
1258
1268
|
* @param url 网址
|
|
1259
1269
|
* @param details 配置
|
|
1260
1270
|
*/
|
|
1261
|
-
put<T extends HttpxDetails>(url: string, details: T):
|
|
1271
|
+
put<T extends HttpxDetails>(url: string, details: T): HttpxPromise<HttpxAsyncResult<T>>;
|
|
1262
1272
|
}
|
|
1263
1273
|
export { Httpx };
|
|
@@ -320,7 +320,7 @@ declare class Utils {
|
|
|
320
320
|
* Utils.formatTime()
|
|
321
321
|
* > '2023-1-1 00:00:00'
|
|
322
322
|
**/
|
|
323
|
-
formatTime(text?: string | number | Date, formatType?: "yyyy-MM-dd HH:mm:ss" | "yyyy/MM/dd HH:mm:ss" | "yyyy_MM_dd_HH_mm_ss" | "yyyy年MM月dd日 HH时mm分ss秒" | "yyyy年MM月dd日 hh:mm:ss" | "yyyy年MM月dd日 HH:mm:ss" | "yyyy-MM-dd" | "yyyyMMdd" | "HH:mm:ss"): string;
|
|
323
|
+
formatTime(text?: string | number | Date, formatType?: "yyyy-MM-dd HH:mm:ss" | "yyyy/MM/dd HH:mm:ss" | "yyyy_MM_dd_HH_mm_ss" | "yyyy年MM月dd日 HH时mm分ss秒" | "yyyy年MM月dd日 hh:mm:ss" | "yyyy年MM月dd日 HH:mm:ss" | "yyyy-MM-dd" | "yyyyMMdd" | "HH:mm:ss" | "yyyy" | "MM" | "dd" | "HH" | "mm" | "ss"): string;
|
|
324
324
|
/**
|
|
325
325
|
* 字符串格式的时间转时间戳
|
|
326
326
|
* @param text 字符串格式的时间,例如:
|
|
@@ -1029,6 +1029,13 @@ declare class Utils {
|
|
|
1029
1029
|
*/
|
|
1030
1030
|
callback: MutationCallback;
|
|
1031
1031
|
}): MutationObserver;
|
|
1032
|
+
/**
|
|
1033
|
+
* 使用观察器观察元素出现在视图内,出现的话触发回调
|
|
1034
|
+
* @param target 目标元素
|
|
1035
|
+
* @param callback 触发的回调
|
|
1036
|
+
* @param options 观察器配置
|
|
1037
|
+
*/
|
|
1038
|
+
mutatuinVisible(target: Element | Element[], callback: (entries: IntersectionObserverEntry[], observer: IntersectionObserver) => void, options?: IntersectionObserverInit): void;
|
|
1032
1039
|
/**
|
|
1033
1040
|
* 去除全局window下的Utils,返回控制权
|
|
1034
1041
|
* @example
|
package/package.json
CHANGED
package/src/Httpx.ts
CHANGED
|
@@ -1223,6 +1223,13 @@ export declare interface HttpxHookErrorData {
|
|
|
1223
1223
|
response: any;
|
|
1224
1224
|
}
|
|
1225
1225
|
|
|
1226
|
+
export type HttpxPromise<T> = Promise<T> & {
|
|
1227
|
+
/**
|
|
1228
|
+
* 用于取消发送的请求,并执行resolve返回abort
|
|
1229
|
+
*/
|
|
1230
|
+
abort(): void;
|
|
1231
|
+
};
|
|
1232
|
+
|
|
1226
1233
|
class Httpx {
|
|
1227
1234
|
private GM_Api = {
|
|
1228
1235
|
xmlHttpRequest: null as any,
|
|
@@ -2014,10 +2021,10 @@ class Httpx {
|
|
|
2014
2021
|
if (details.fetch) {
|
|
2015
2022
|
const { fetchDetails, fetchRequestInit, abortController } =
|
|
2016
2023
|
this.context.HttpxRequestDetails.handleFetchDetail(details);
|
|
2017
|
-
this.fetch(fetchDetails, fetchRequestInit, abortController);
|
|
2024
|
+
return this.fetch(fetchDetails, fetchRequestInit, abortController);
|
|
2018
2025
|
} else {
|
|
2019
2026
|
Reflect.deleteProperty(details, "fetchInit");
|
|
2020
|
-
this.xmlHttpRequest(details);
|
|
2027
|
+
return this.xmlHttpRequest(details);
|
|
2021
2028
|
}
|
|
2022
2029
|
},
|
|
2023
2030
|
/**
|
|
@@ -2025,7 +2032,7 @@ class Httpx {
|
|
|
2025
2032
|
* @param details
|
|
2026
2033
|
*/
|
|
2027
2034
|
xmlHttpRequest(details: Required<HttpxDetails>) {
|
|
2028
|
-
this.context.GM_Api.xmlHttpRequest(details);
|
|
2035
|
+
return this.context.GM_Api.xmlHttpRequest(details);
|
|
2029
2036
|
},
|
|
2030
2037
|
/**
|
|
2031
2038
|
* 使用fetch发送请求
|
|
@@ -2195,6 +2202,10 @@ class Httpx {
|
|
|
2195
2202
|
* 当前使用请求时,输出请求的配置
|
|
2196
2203
|
*/
|
|
2197
2204
|
#LOG_DETAILS = false;
|
|
2205
|
+
/**
|
|
2206
|
+
* 实例化,可传入GM_xmlhttpRequest,未传入则使用window.fetch
|
|
2207
|
+
* @param __xmlHttpRequest__
|
|
2208
|
+
*/
|
|
2198
2209
|
constructor(__xmlHttpRequest__?: any) {
|
|
2199
2210
|
if (typeof __xmlHttpRequest__ !== "function") {
|
|
2200
2211
|
console.warn(
|
|
@@ -2306,44 +2317,68 @@ class Httpx {
|
|
|
2306
2317
|
}
|
|
2307
2318
|
/**
|
|
2308
2319
|
* GET 请求
|
|
2320
|
+
* @param url 网址
|
|
2309
2321
|
* @param details 配置
|
|
2310
2322
|
*/
|
|
2311
|
-
async get<T extends HttpxDetails>(
|
|
2323
|
+
async get<T extends HttpxDetails>(
|
|
2324
|
+
url: string,
|
|
2325
|
+
details: T // @ts-ignore
|
|
2326
|
+
): HttpxPromise<HttpxAsyncResult<T>>;
|
|
2312
2327
|
/**
|
|
2313
2328
|
* GET 请求
|
|
2314
|
-
* @param url 网址
|
|
2315
2329
|
* @param details 配置
|
|
2316
2330
|
*/
|
|
2317
2331
|
async get<T extends HttpxDetails>(
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
): Promise<HttpxAsyncResult<T>>;
|
|
2332
|
+
details: T // @ts-ignore
|
|
2333
|
+
): HttpxPromise<HttpxAsyncResult<T>>;
|
|
2321
2334
|
/**
|
|
2322
2335
|
* GET 请求
|
|
2336
|
+
* @param url 网址
|
|
2337
|
+
* @param details 配置
|
|
2323
2338
|
*/
|
|
2324
2339
|
async get(
|
|
2325
|
-
...args: (HttpxDetails | string)[]
|
|
2326
|
-
):
|
|
2327
|
-
let that = this;
|
|
2340
|
+
...args: (HttpxDetails | string)[] // @ts-ignore
|
|
2341
|
+
): HttpxPromise<HttpxAsyncResult<HttpxDetails>> {
|
|
2328
2342
|
let details = this.HttpxRequestDetails.handleBeforeRequestDetails(...args);
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2343
|
+
let abortFn: Function | null = null;
|
|
2344
|
+
const promise = new Promise<HttpxAsyncResult<HttpxDetails>>(
|
|
2345
|
+
(resolve, reject) => {
|
|
2346
|
+
let requestDetails = this.HttpxRequestDetails.getDetails(
|
|
2347
|
+
"GET",
|
|
2348
|
+
details,
|
|
2349
|
+
resolve,
|
|
2350
|
+
reject
|
|
2351
|
+
);
|
|
2352
|
+
Reflect.deleteProperty(requestDetails, "onprogress");
|
|
2353
|
+
// @ts-ignore
|
|
2354
|
+
requestDetails = this.HttpxRequestDetails.handle(requestDetails);
|
|
2355
|
+
const requestResult = this.HttpxRequest.request(requestDetails);
|
|
2356
|
+
if (
|
|
2357
|
+
requestResult != null &&
|
|
2358
|
+
typeof requestResult.abort === "function"
|
|
2359
|
+
) {
|
|
2360
|
+
abortFn = requestResult.abort;
|
|
2361
|
+
}
|
|
2362
|
+
}
|
|
2363
|
+
);
|
|
2364
|
+
Object.defineProperty(promise, "abort", {
|
|
2365
|
+
value: () => {
|
|
2366
|
+
return () => {
|
|
2367
|
+
if (typeof abortFn === "function") {
|
|
2368
|
+
abortFn();
|
|
2369
|
+
}
|
|
2370
|
+
};
|
|
2371
|
+
},
|
|
2340
2372
|
});
|
|
2373
|
+
return promise;
|
|
2341
2374
|
}
|
|
2342
2375
|
/**
|
|
2343
2376
|
* POST 请求
|
|
2344
2377
|
* @param details 配置
|
|
2345
2378
|
*/
|
|
2346
|
-
async post<T extends HttpxDetails>(
|
|
2379
|
+
async post<T extends HttpxDetails>(
|
|
2380
|
+
details: T // @ts-ignore
|
|
2381
|
+
): HttpxPromise<HttpxAsyncResult<T>>;
|
|
2347
2382
|
/**
|
|
2348
2383
|
* POST 请求
|
|
2349
2384
|
* @param url 网址
|
|
@@ -2351,33 +2386,53 @@ class Httpx {
|
|
|
2351
2386
|
*/
|
|
2352
2387
|
async post<T extends HttpxDetails>(
|
|
2353
2388
|
url: string,
|
|
2354
|
-
details: T
|
|
2355
|
-
):
|
|
2389
|
+
details: T // @ts-ignore
|
|
2390
|
+
): HttpxPromise<HttpxAsyncResult<T>>;
|
|
2356
2391
|
/**
|
|
2357
2392
|
* POST 请求
|
|
2358
2393
|
*/
|
|
2359
2394
|
async post(
|
|
2360
|
-
...args: (HttpxDetails | string)[]
|
|
2361
|
-
):
|
|
2362
|
-
let that = this;
|
|
2395
|
+
...args: (HttpxDetails | string)[] // @ts-ignore
|
|
2396
|
+
): HttpxPromise<HttpxAsyncResult<HttpxDetails>> {
|
|
2363
2397
|
let details = this.HttpxRequestDetails.handleBeforeRequestDetails(...args);
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2398
|
+
let abortFn: Function | null = null;
|
|
2399
|
+
const promise = new Promise<HttpxAsyncResult<HttpxDetails>>(
|
|
2400
|
+
(resolve, reject) => {
|
|
2401
|
+
let requestDetails = this.HttpxRequestDetails.getDetails(
|
|
2402
|
+
"POST",
|
|
2403
|
+
details,
|
|
2404
|
+
resolve,
|
|
2405
|
+
reject
|
|
2406
|
+
);
|
|
2407
|
+
// @ts-ignore
|
|
2408
|
+
requestDetails = this.HttpxRequestDetails.handle(requestDetails);
|
|
2409
|
+
const requestResult = this.HttpxRequest.request(requestDetails);
|
|
2410
|
+
if (
|
|
2411
|
+
requestResult != null &&
|
|
2412
|
+
typeof requestResult.abort === "function"
|
|
2413
|
+
) {
|
|
2414
|
+
abortFn = requestResult.abort;
|
|
2415
|
+
}
|
|
2416
|
+
}
|
|
2417
|
+
);
|
|
2418
|
+
Object.defineProperty(promise, "abort", {
|
|
2419
|
+
value: () => {
|
|
2420
|
+
return () => {
|
|
2421
|
+
if (typeof abortFn === "function") {
|
|
2422
|
+
abortFn();
|
|
2423
|
+
}
|
|
2424
|
+
};
|
|
2425
|
+
},
|
|
2374
2426
|
});
|
|
2427
|
+
return promise;
|
|
2375
2428
|
}
|
|
2376
2429
|
/**
|
|
2377
2430
|
* HEAD 请求
|
|
2378
2431
|
* @param details 配置
|
|
2379
2432
|
*/
|
|
2380
|
-
async head<T extends HttpxDetails>(
|
|
2433
|
+
async head<T extends HttpxDetails>(
|
|
2434
|
+
details: T // @ts-ignore
|
|
2435
|
+
): HttpxPromise<HttpxAsyncResult<T>>;
|
|
2381
2436
|
/**
|
|
2382
2437
|
* HEAD 请求
|
|
2383
2438
|
* @param url 网址
|
|
@@ -2385,35 +2440,58 @@ class Httpx {
|
|
|
2385
2440
|
*/
|
|
2386
2441
|
async head<T extends HttpxDetails>(
|
|
2387
2442
|
url: string,
|
|
2388
|
-
details: T
|
|
2389
|
-
):
|
|
2443
|
+
details: T // @ts-ignore
|
|
2444
|
+
): HttpxPromise<HttpxAsyncResult<T>>;
|
|
2390
2445
|
/**
|
|
2391
2446
|
* HEAD 请求
|
|
2392
2447
|
*/
|
|
2393
2448
|
async head(
|
|
2394
|
-
...args: (HttpxDetails | string)[]
|
|
2395
|
-
):
|
|
2396
|
-
let that = this;
|
|
2449
|
+
...args: (HttpxDetails | string)[] // @ts-ignore
|
|
2450
|
+
): HttpxPromise<HttpxAsyncResult<HttpxDetails>> {
|
|
2397
2451
|
let details = this.HttpxRequestDetails.handleBeforeRequestDetails(...args);
|
|
2452
|
+
let abortFn: Function | null = null;
|
|
2398
2453
|
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2454
|
+
const promise = new Promise<HttpxAsyncResult<HttpxDetails>>(
|
|
2455
|
+
(resolve, reject) => {
|
|
2456
|
+
let requestDetails = this.HttpxRequestDetails.getDetails(
|
|
2457
|
+
"HEAD",
|
|
2458
|
+
details,
|
|
2459
|
+
resolve,
|
|
2460
|
+
reject
|
|
2461
|
+
);
|
|
2462
|
+
Reflect.deleteProperty(requestDetails, "onprogress");
|
|
2463
|
+
// @ts-ignore
|
|
2464
|
+
requestDetails = this.HttpxRequestDetails.handle(requestDetails);
|
|
2465
|
+
const requestResult = this.HttpxRequest.request(requestDetails);
|
|
2466
|
+
if (
|
|
2467
|
+
requestResult != null &&
|
|
2468
|
+
typeof requestResult.abort === "function"
|
|
2469
|
+
) {
|
|
2470
|
+
abortFn = requestResult.abort;
|
|
2471
|
+
}
|
|
2472
|
+
}
|
|
2473
|
+
);
|
|
2474
|
+
|
|
2475
|
+
Object.defineProperty(promise, "abort", {
|
|
2476
|
+
value: () => {
|
|
2477
|
+
return () => {
|
|
2478
|
+
if (typeof abortFn === "function") {
|
|
2479
|
+
abortFn();
|
|
2480
|
+
}
|
|
2481
|
+
};
|
|
2482
|
+
},
|
|
2409
2483
|
});
|
|
2484
|
+
|
|
2485
|
+
return promise;
|
|
2410
2486
|
}
|
|
2411
2487
|
|
|
2412
2488
|
/**
|
|
2413
2489
|
* OPTIONS 请求
|
|
2414
2490
|
* @param details 配置
|
|
2415
2491
|
*/
|
|
2416
|
-
options<T extends HttpxDetails>(
|
|
2492
|
+
options<T extends HttpxDetails>(
|
|
2493
|
+
details: T // @ts-ignore
|
|
2494
|
+
): HttpxPromise<HttpxAsyncResult<T>>;
|
|
2417
2495
|
/**
|
|
2418
2496
|
* OPTIONS 请求
|
|
2419
2497
|
* @param url 网址
|
|
@@ -2421,28 +2499,46 @@ class Httpx {
|
|
|
2421
2499
|
*/
|
|
2422
2500
|
options<T extends HttpxDetails>(
|
|
2423
2501
|
url: string,
|
|
2424
|
-
details: T
|
|
2425
|
-
):
|
|
2502
|
+
details: T // @ts-ignore
|
|
2503
|
+
): HttpxPromise<HttpxAsyncResult<T>>;
|
|
2426
2504
|
/**
|
|
2427
2505
|
* OPTIONS 请求
|
|
2428
2506
|
*/
|
|
2429
2507
|
async options(
|
|
2430
|
-
...args: (HttpxDetails | string)[]
|
|
2431
|
-
):
|
|
2432
|
-
let that = this;
|
|
2508
|
+
...args: (HttpxDetails | string)[] // @ts-ignore
|
|
2509
|
+
): HttpxPromise<HttpxAsyncResult<HttpxDetails>> {
|
|
2433
2510
|
let details = this.HttpxRequestDetails.handleBeforeRequestDetails(...args);
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2511
|
+
let abortFn: Function | null = null;
|
|
2512
|
+
const promise = new Promise<HttpxAsyncResult<HttpxDetails>>(
|
|
2513
|
+
(resolve, reject) => {
|
|
2514
|
+
let requestDetails = this.HttpxRequestDetails.getDetails(
|
|
2515
|
+
"OPTIONS",
|
|
2516
|
+
details,
|
|
2517
|
+
resolve,
|
|
2518
|
+
reject
|
|
2519
|
+
);
|
|
2520
|
+
Reflect.deleteProperty(requestDetails, "onprogress");
|
|
2521
|
+
// @ts-ignore
|
|
2522
|
+
requestDetails = this.HttpxRequestDetails.handle(requestDetails);
|
|
2523
|
+
const requestResult = this.HttpxRequest.request(requestDetails);
|
|
2524
|
+
if (
|
|
2525
|
+
requestResult != null &&
|
|
2526
|
+
typeof requestResult.abort === "function"
|
|
2527
|
+
) {
|
|
2528
|
+
abortFn = requestResult.abort;
|
|
2529
|
+
}
|
|
2530
|
+
}
|
|
2531
|
+
);
|
|
2532
|
+
Object.defineProperty(promise, "abort", {
|
|
2533
|
+
value: () => {
|
|
2534
|
+
return () => {
|
|
2535
|
+
if (typeof abortFn === "function") {
|
|
2536
|
+
abortFn();
|
|
2537
|
+
}
|
|
2538
|
+
};
|
|
2539
|
+
},
|
|
2445
2540
|
});
|
|
2541
|
+
return promise;
|
|
2446
2542
|
}
|
|
2447
2543
|
|
|
2448
2544
|
/**
|
|
@@ -2450,8 +2546,8 @@ class Httpx {
|
|
|
2450
2546
|
* @param details 配置
|
|
2451
2547
|
*/
|
|
2452
2548
|
async delete<T extends HttpxDetails>(
|
|
2453
|
-
details: T
|
|
2454
|
-
):
|
|
2549
|
+
details: T // @ts-ignore
|
|
2550
|
+
): HttpxPromise<HttpxAsyncResult<T>>;
|
|
2455
2551
|
/**
|
|
2456
2552
|
* DELETE 请求
|
|
2457
2553
|
* @param url 网址
|
|
@@ -2459,35 +2555,56 @@ class Httpx {
|
|
|
2459
2555
|
*/
|
|
2460
2556
|
async delete<T extends HttpxDetails>(
|
|
2461
2557
|
url: string,
|
|
2462
|
-
details: T
|
|
2463
|
-
):
|
|
2558
|
+
details: T // @ts-ignore
|
|
2559
|
+
): HttpxPromise<HttpxAsyncResult<T>>;
|
|
2464
2560
|
/**
|
|
2465
2561
|
* DELETE 请求
|
|
2466
2562
|
*/
|
|
2467
2563
|
async delete(
|
|
2468
|
-
...args: (HttpxDetails | string)[]
|
|
2469
|
-
):
|
|
2470
|
-
let that = this;
|
|
2564
|
+
...args: (HttpxDetails | string)[] // @ts-ignore
|
|
2565
|
+
): HttpxPromise<HttpxAsyncResult<HttpxDetails>> {
|
|
2471
2566
|
let details = this.HttpxRequestDetails.handleBeforeRequestDetails(...args);
|
|
2567
|
+
let abortFn: Function | null = null;
|
|
2568
|
+
const promise = new Promise<HttpxAsyncResult<HttpxDetails>>(
|
|
2569
|
+
(resolve, reject) => {
|
|
2570
|
+
let requestDetails = this.HttpxRequestDetails.getDetails(
|
|
2571
|
+
"DELETE",
|
|
2572
|
+
details,
|
|
2573
|
+
resolve,
|
|
2574
|
+
reject
|
|
2575
|
+
);
|
|
2576
|
+
Reflect.deleteProperty(requestDetails, "onprogress");
|
|
2577
|
+
// @ts-ignore
|
|
2578
|
+
requestDetails = this.HttpxRequestDetails.handle(requestDetails);
|
|
2579
|
+
const requestResult = this.HttpxRequest.request(requestDetails);
|
|
2580
|
+
if (
|
|
2581
|
+
requestResult != null &&
|
|
2582
|
+
typeof requestResult.abort === "function"
|
|
2583
|
+
) {
|
|
2584
|
+
abortFn = requestResult.abort;
|
|
2585
|
+
}
|
|
2586
|
+
}
|
|
2587
|
+
);
|
|
2472
2588
|
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
(requestDetails as any) = that.HttpxRequestDetails.handle(requestDetails);
|
|
2482
|
-
that.HttpxRequest.request(requestDetails);
|
|
2589
|
+
Object.defineProperty(promise, "abort", {
|
|
2590
|
+
value: () => {
|
|
2591
|
+
return () => {
|
|
2592
|
+
if (typeof abortFn === "function") {
|
|
2593
|
+
abortFn();
|
|
2594
|
+
}
|
|
2595
|
+
};
|
|
2596
|
+
},
|
|
2483
2597
|
});
|
|
2598
|
+
return promise;
|
|
2484
2599
|
}
|
|
2485
2600
|
|
|
2486
2601
|
/**
|
|
2487
2602
|
* PUT 请求
|
|
2488
2603
|
* @param details 配置
|
|
2489
2604
|
*/
|
|
2490
|
-
async put<T extends HttpxDetails>(
|
|
2605
|
+
async put<T extends HttpxDetails>(
|
|
2606
|
+
details: T // @ts-ignore
|
|
2607
|
+
): HttpxPromise<HttpxAsyncResult<T>>;
|
|
2491
2608
|
/**
|
|
2492
2609
|
* PUT 请求
|
|
2493
2610
|
* @param url 网址
|
|
@@ -2495,27 +2612,45 @@ class Httpx {
|
|
|
2495
2612
|
*/
|
|
2496
2613
|
async put<T extends HttpxDetails>(
|
|
2497
2614
|
url: string,
|
|
2498
|
-
details: T
|
|
2499
|
-
):
|
|
2615
|
+
details: T // @ts-ignore
|
|
2616
|
+
): HttpxPromise<HttpxAsyncResult<T>>;
|
|
2500
2617
|
/**
|
|
2501
2618
|
* PUT 请求
|
|
2502
2619
|
*/
|
|
2503
2620
|
async put(
|
|
2504
|
-
...args: (HttpxDetails | string)[]
|
|
2505
|
-
):
|
|
2506
|
-
let that = this;
|
|
2621
|
+
...args: (HttpxDetails | string)[] // @ts-ignore
|
|
2622
|
+
): HttpxPromise<HttpxAsyncResult<HttpxDetails>> {
|
|
2507
2623
|
let details = this.HttpxRequestDetails.handleBeforeRequestDetails(...args);
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2624
|
+
let abortFn: Function | null = null;
|
|
2625
|
+
const promise = new Promise<HttpxAsyncResult<HttpxDetails>>(
|
|
2626
|
+
(resolve, reject) => {
|
|
2627
|
+
let requestDetails = this.HttpxRequestDetails.getDetails(
|
|
2628
|
+
"PUT",
|
|
2629
|
+
details,
|
|
2630
|
+
resolve,
|
|
2631
|
+
reject
|
|
2632
|
+
);
|
|
2633
|
+
// @ts-ignore
|
|
2634
|
+
requestDetails = this.HttpxRequestDetails.handle(requestDetails);
|
|
2635
|
+
const requestResult = this.HttpxRequest.request(requestDetails);
|
|
2636
|
+
if (
|
|
2637
|
+
requestResult != null &&
|
|
2638
|
+
typeof requestResult.abort === "function"
|
|
2639
|
+
) {
|
|
2640
|
+
abortFn = requestResult.abort;
|
|
2641
|
+
}
|
|
2642
|
+
}
|
|
2643
|
+
);
|
|
2644
|
+
Object.defineProperty(promise, "abort", {
|
|
2645
|
+
value: () => {
|
|
2646
|
+
return () => {
|
|
2647
|
+
if (typeof abortFn === "function") {
|
|
2648
|
+
abortFn();
|
|
2649
|
+
}
|
|
2650
|
+
};
|
|
2651
|
+
},
|
|
2518
2652
|
});
|
|
2653
|
+
return promise;
|
|
2519
2654
|
}
|
|
2520
2655
|
}
|
|
2521
2656
|
|