@whitesev/utils 2.4.7 → 2.5.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/index.amd.js +85 -35
- package/dist/index.amd.js.map +1 -1
- package/dist/index.cjs.js +85 -35
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +85 -35
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +85 -35
- package/dist/index.iife.js.map +1 -1
- package/dist/index.system.js +85 -35
- package/dist/index.system.js.map +1 -1
- package/dist/index.umd.js +85 -35
- package/dist/index.umd.js.map +1 -1
- package/dist/types/src/Utils.d.ts +27 -21
- package/package.json +1 -1
- package/src/Httpx.ts +10 -1
- package/src/Utils.ts +85 -39
|
@@ -469,6 +469,25 @@ declare class Utils {
|
|
|
469
469
|
* > 'Mozilla/5.0 (Linux; Android 10; MI 13 Build/OPR1.170623.027; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.3490.40 Mobile Safari/537.36'
|
|
470
470
|
**/
|
|
471
471
|
getRandomAndroidUA(): string;
|
|
472
|
+
/**
|
|
473
|
+
* 获取随机的电脑端User-Agent
|
|
474
|
+
* + Mozilla/5.0:以前用于Netscape浏览器,目前大多数浏览器UA都会带有
|
|
475
|
+
* + Windows NT 13:代表Window11系统
|
|
476
|
+
* + Windows NT 10.0:代表Window10系统
|
|
477
|
+
* + Windows NT 6.1:代表windows7系统
|
|
478
|
+
* + WOW64:Windows-on-Windows 64-bit,32位的应用程序运行于此64位处理器上
|
|
479
|
+
* + Win64:64位
|
|
480
|
+
* + AppleWebKit/537.36:浏览器内核
|
|
481
|
+
* + KHTML:HTML排版引擎
|
|
482
|
+
* + like Gecko:这不是Geckeo 浏览器,但是运行起来像Geckeo浏览器
|
|
483
|
+
* + Chrome/106.0.5068.19:Chrome版本号
|
|
484
|
+
* + Safari/537.36:宣称自己是Safari?
|
|
485
|
+
* @returns 返回随机字符串
|
|
486
|
+
* @example
|
|
487
|
+
* Utils.getRandomPCUA();
|
|
488
|
+
* > 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.5068.19 Safari/537.36'
|
|
489
|
+
**/
|
|
490
|
+
getRandomPCUA(): string;
|
|
472
491
|
/**
|
|
473
492
|
* 获取随机值
|
|
474
493
|
* @example
|
|
@@ -500,25 +519,6 @@ declare class Utils {
|
|
|
500
519
|
* > {1: 1}
|
|
501
520
|
*/
|
|
502
521
|
getRandomValue<T extends any>(val_1: UtilsOwnObject<T>, val_2: UtilsOwnObject<T>): T;
|
|
503
|
-
/**
|
|
504
|
-
* 获取随机的电脑端User-Agent
|
|
505
|
-
* + Mozilla/5.0:以前用于Netscape浏览器,目前大多数浏览器UA都会带有
|
|
506
|
-
* + Windows NT 13:代表Window11系统
|
|
507
|
-
* + Windows NT 10.0:代表Window10系统
|
|
508
|
-
* + Windows NT 6.1:代表windows7系统
|
|
509
|
-
* + WOW64:Windows-on-Windows 64-bit,32位的应用程序运行于此64位处理器上
|
|
510
|
-
* + Win64:64位
|
|
511
|
-
* + AppleWebKit/537.36:浏览器内核
|
|
512
|
-
* + KHTML:HTML排版引擎
|
|
513
|
-
* + like Gecko:这不是Geckeo 浏览器,但是运行起来像Geckeo浏览器
|
|
514
|
-
* + Chrome/106.0.5068.19:Chrome版本号
|
|
515
|
-
* + Safari/537.36:宣称自己是Safari?
|
|
516
|
-
* @returns 返回随机字符串
|
|
517
|
-
* @example
|
|
518
|
-
* Utils.getRandomPCUA();
|
|
519
|
-
* > 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.5068.19 Safari/537.36'
|
|
520
|
-
**/
|
|
521
|
-
getRandomPCUA(): string;
|
|
522
522
|
/**
|
|
523
523
|
* 获取元素上的使用React框架的实例属性,目前包括reactFiber、reactProps、reactEvents、reactEventHandlers、reactInternalInstance
|
|
524
524
|
* @param element 需要获取的目标元素
|
|
@@ -786,12 +786,18 @@ declare class Utils {
|
|
|
786
786
|
isNativeFunc(target: Function): boolean;
|
|
787
787
|
/**
|
|
788
788
|
* 判断当前的位置是否位于页面底部附近
|
|
789
|
-
* @param
|
|
789
|
+
* @param nearBottomHeight (可选)判断在底部的误差值,默认:50
|
|
790
790
|
* @returns
|
|
791
791
|
* + true 在底部附近
|
|
792
792
|
* + false 不在底部附近
|
|
793
793
|
*/
|
|
794
|
-
isNearBottom(
|
|
794
|
+
isNearBottom(nearBottomHeight?: number): boolean;
|
|
795
|
+
/**
|
|
796
|
+
* 判断元素内当前的位置是否位于元素内底部附近
|
|
797
|
+
* @param target 需要判断的元素
|
|
798
|
+
* @param nearBottomHeight (可选)判断在底部的误差值,默认:50
|
|
799
|
+
*/
|
|
800
|
+
isNearBottom(target: HTMLElement, nearBottomHeight?: number): boolean;
|
|
795
801
|
/**
|
|
796
802
|
* 判断对象是否是元素
|
|
797
803
|
* @param target
|
package/package.json
CHANGED
package/src/Httpx.ts
CHANGED
|
@@ -275,7 +275,7 @@ class Httpx {
|
|
|
275
275
|
let that = this;
|
|
276
276
|
let requestOption = <Required<HttpxRequestOption>>{
|
|
277
277
|
url: userRequestOption.url || this.context.#defaultDetails.url,
|
|
278
|
-
method: (method || "GET").toString().toUpperCase(),
|
|
278
|
+
method: (method || "GET").toString().toUpperCase().trim(),
|
|
279
279
|
timeout:
|
|
280
280
|
userRequestOption.timeout || this.context.#defaultDetails.timeout,
|
|
281
281
|
responseType:
|
|
@@ -510,14 +510,22 @@ class Httpx {
|
|
|
510
510
|
// GET类型,data如果有,那么需要转为searchParams
|
|
511
511
|
let urlObj = new URL(requestOption.url);
|
|
512
512
|
let urlSearch = "";
|
|
513
|
+
let isHandler = false;
|
|
513
514
|
if (typeof requestOption.data === "string") {
|
|
515
|
+
isHandler = true;
|
|
514
516
|
urlSearch = requestOption.data;
|
|
515
517
|
} else if (typeof requestOption.data === "object") {
|
|
518
|
+
isHandler = true;
|
|
516
519
|
// URLSearchParams参数可以转普通的string:string,包括FormData
|
|
517
520
|
// @ts-ignore
|
|
518
521
|
let searchParams = new URLSearchParams(requestOption.data);
|
|
519
522
|
urlSearch = searchParams.toString();
|
|
520
523
|
}
|
|
524
|
+
if (isHandler) {
|
|
525
|
+
// GET/HEAD请求不支持data参数
|
|
526
|
+
// 对data进行处理了才可以删除
|
|
527
|
+
Reflect.deleteProperty(requestOption, "data");
|
|
528
|
+
}
|
|
521
529
|
if (urlSearch != "") {
|
|
522
530
|
if (urlObj.search === "") {
|
|
523
531
|
// url没有search参数,直接覆盖
|
|
@@ -580,6 +588,7 @@ class Httpx {
|
|
|
580
588
|
} catch (error) {
|
|
581
589
|
console.warn("Httpx ==> 转换data参数错误", error);
|
|
582
590
|
}
|
|
591
|
+
|
|
583
592
|
return requestOption;
|
|
584
593
|
},
|
|
585
594
|
/**
|
package/src/Utils.ts
CHANGED
|
@@ -1398,7 +1398,6 @@ class Utils {
|
|
|
1398
1398
|
* Utils.getRandomAndroidUA();
|
|
1399
1399
|
* > 'Mozilla/5.0 (Linux; Android 10; MI 13 Build/OPR1.170623.027; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.3490.40 Mobile Safari/537.36'
|
|
1400
1400
|
**/
|
|
1401
|
-
getRandomAndroidUA(): string;
|
|
1402
1401
|
getRandomAndroidUA(): string {
|
|
1403
1402
|
let UtilsContext = this;
|
|
1404
1403
|
let mobileNameList = [
|
|
@@ -1417,14 +1416,44 @@ class Utils {
|
|
|
1417
1416
|
"M2003J15SC Build/RP1A.200720.011; wv",
|
|
1418
1417
|
"MI 13 Build/OPR1.170623.027; wv",
|
|
1419
1418
|
];
|
|
1419
|
+
/* 安卓版本 */
|
|
1420
1420
|
let androidVersion = UtilsContext.getRandomValue(12, 14);
|
|
1421
|
+
/* 手机型号 */
|
|
1421
1422
|
let randomMobile = UtilsContext.getRandomValue(mobileNameList);
|
|
1422
|
-
|
|
1423
|
+
/* chrome大版本号 */
|
|
1424
|
+
let chromeVersion1 = UtilsContext.getRandomValue(120, 132);
|
|
1423
1425
|
let chromeVersion2 = UtilsContext.getRandomValue(0, 0);
|
|
1424
1426
|
let chromeVersion3 = UtilsContext.getRandomValue(2272, 6099);
|
|
1425
1427
|
let chromeVersion4 = UtilsContext.getRandomValue(1, 218);
|
|
1426
1428
|
return `Mozilla/5.0 (Linux; Android ${androidVersion}; ${randomMobile}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/${chromeVersion1}.${chromeVersion2}.${chromeVersion3}.${chromeVersion4} Mobile Safari/537.36`;
|
|
1427
1429
|
}
|
|
1430
|
+
/**
|
|
1431
|
+
* 获取随机的电脑端User-Agent
|
|
1432
|
+
* + Mozilla/5.0:以前用于Netscape浏览器,目前大多数浏览器UA都会带有
|
|
1433
|
+
* + Windows NT 13:代表Window11系统
|
|
1434
|
+
* + Windows NT 10.0:代表Window10系统
|
|
1435
|
+
* + Windows NT 6.1:代表windows7系统
|
|
1436
|
+
* + WOW64:Windows-on-Windows 64-bit,32位的应用程序运行于此64位处理器上
|
|
1437
|
+
* + Win64:64位
|
|
1438
|
+
* + AppleWebKit/537.36:浏览器内核
|
|
1439
|
+
* + KHTML:HTML排版引擎
|
|
1440
|
+
* + like Gecko:这不是Geckeo 浏览器,但是运行起来像Geckeo浏览器
|
|
1441
|
+
* + Chrome/106.0.5068.19:Chrome版本号
|
|
1442
|
+
* + Safari/537.36:宣称自己是Safari?
|
|
1443
|
+
* @returns 返回随机字符串
|
|
1444
|
+
* @example
|
|
1445
|
+
* Utils.getRandomPCUA();
|
|
1446
|
+
* > 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.5068.19 Safari/537.36'
|
|
1447
|
+
**/
|
|
1448
|
+
getRandomPCUA(): string {
|
|
1449
|
+
let UtilsContext = this;
|
|
1450
|
+
/* chrome大版本号 */
|
|
1451
|
+
let chromeVersion1 = UtilsContext.getRandomValue(120, 132);
|
|
1452
|
+
let chromeVersion2 = UtilsContext.getRandomValue(0, 0);
|
|
1453
|
+
let chromeVersion3 = UtilsContext.getRandomValue(2272, 6099);
|
|
1454
|
+
let chromeVersion4 = UtilsContext.getRandomValue(1, 218);
|
|
1455
|
+
return `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/${chromeVersion1}.${chromeVersion2}.${chromeVersion3}.${chromeVersion4} Safari/537.36`;
|
|
1456
|
+
}
|
|
1428
1457
|
/**
|
|
1429
1458
|
* 获取随机值
|
|
1430
1459
|
* @example
|
|
@@ -1493,32 +1522,6 @@ class Utils {
|
|
|
1493
1522
|
}
|
|
1494
1523
|
}
|
|
1495
1524
|
}
|
|
1496
|
-
/**
|
|
1497
|
-
* 获取随机的电脑端User-Agent
|
|
1498
|
-
* + Mozilla/5.0:以前用于Netscape浏览器,目前大多数浏览器UA都会带有
|
|
1499
|
-
* + Windows NT 13:代表Window11系统
|
|
1500
|
-
* + Windows NT 10.0:代表Window10系统
|
|
1501
|
-
* + Windows NT 6.1:代表windows7系统
|
|
1502
|
-
* + WOW64:Windows-on-Windows 64-bit,32位的应用程序运行于此64位处理器上
|
|
1503
|
-
* + Win64:64位
|
|
1504
|
-
* + AppleWebKit/537.36:浏览器内核
|
|
1505
|
-
* + KHTML:HTML排版引擎
|
|
1506
|
-
* + like Gecko:这不是Geckeo 浏览器,但是运行起来像Geckeo浏览器
|
|
1507
|
-
* + Chrome/106.0.5068.19:Chrome版本号
|
|
1508
|
-
* + Safari/537.36:宣称自己是Safari?
|
|
1509
|
-
* @returns 返回随机字符串
|
|
1510
|
-
* @example
|
|
1511
|
-
* Utils.getRandomPCUA();
|
|
1512
|
-
* > 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.5068.19 Safari/537.36'
|
|
1513
|
-
**/
|
|
1514
|
-
getRandomPCUA(): string {
|
|
1515
|
-
let UtilsContext = this;
|
|
1516
|
-
let chromeVersion1 = UtilsContext.getRandomValue(115, 127);
|
|
1517
|
-
let chromeVersion2 = UtilsContext.getRandomValue(0, 0);
|
|
1518
|
-
let chromeVersion3 = UtilsContext.getRandomValue(2272, 6099);
|
|
1519
|
-
let chromeVersion4 = UtilsContext.getRandomValue(1, 218);
|
|
1520
|
-
return `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/${chromeVersion1}.${chromeVersion2}.${chromeVersion3}.${chromeVersion4} Safari/537.36`;
|
|
1521
|
-
}
|
|
1522
1525
|
/**
|
|
1523
1526
|
* 获取元素上的使用React框架的实例属性,目前包括reactFiber、reactProps、reactEvents、reactEventHandlers、reactInternalInstance
|
|
1524
1527
|
* @param element 需要获取的目标元素
|
|
@@ -1857,21 +1860,64 @@ class Utils {
|
|
|
1857
1860
|
}
|
|
1858
1861
|
/**
|
|
1859
1862
|
* 判断当前的位置是否位于页面底部附近
|
|
1860
|
-
* @param
|
|
1863
|
+
* @param nearBottomHeight (可选)判断在底部的误差值,默认:50
|
|
1861
1864
|
* @returns
|
|
1862
1865
|
* + true 在底部附近
|
|
1863
1866
|
* + false 不在底部附近
|
|
1864
1867
|
*/
|
|
1865
|
-
isNearBottom(
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1868
|
+
isNearBottom(nearBottomHeight?: number): boolean;
|
|
1869
|
+
/**
|
|
1870
|
+
* 判断元素内当前的位置是否位于元素内底部附近
|
|
1871
|
+
* @param target 需要判断的元素
|
|
1872
|
+
* @param nearBottomHeight (可选)判断在底部的误差值,默认:50
|
|
1873
|
+
*/
|
|
1874
|
+
isNearBottom(target: HTMLElement, nearBottomHeight?: number): boolean;
|
|
1875
|
+
isNearBottom(...args: any[]): boolean {
|
|
1876
|
+
let nearBottomHeight = 50;
|
|
1877
|
+
|
|
1878
|
+
let checkWindow = () => {
|
|
1879
|
+
// 已滚动的距离
|
|
1880
|
+
let scrollTop: number =
|
|
1881
|
+
this.windowApi.window.pageYOffset ||
|
|
1882
|
+
this.windowApi.document.documentElement.scrollTop;
|
|
1883
|
+
// 视窗高度
|
|
1884
|
+
let viewportHeight: number =
|
|
1885
|
+
this.windowApi.window.innerHeight ||
|
|
1886
|
+
this.windowApi.document.documentElement.clientHeight;
|
|
1887
|
+
// 最大滚动距离
|
|
1888
|
+
let maxScrollHeight: number =
|
|
1889
|
+
this.windowApi.document.documentElement.scrollHeight - nearBottomHeight;
|
|
1890
|
+
|
|
1891
|
+
return scrollTop + viewportHeight >= maxScrollHeight;
|
|
1892
|
+
};
|
|
1893
|
+
|
|
1894
|
+
let checkNode = ($ele: HTMLElement) => {
|
|
1895
|
+
// 已滚动的距离
|
|
1896
|
+
let scrollTop: number = $ele.scrollTop;
|
|
1897
|
+
// 视窗高度
|
|
1898
|
+
let viewportHeight: number = $ele.clientHeight;
|
|
1899
|
+
// 最大滚动距离
|
|
1900
|
+
let maxScrollHeight: number =
|
|
1901
|
+
$ele.scrollHeight - viewportHeight - nearBottomHeight;
|
|
1902
|
+
|
|
1903
|
+
return scrollTop >= maxScrollHeight;
|
|
1904
|
+
};
|
|
1905
|
+
|
|
1906
|
+
let firstArg = args[0];
|
|
1907
|
+
if (args.length === 0 || typeof args[0] === "number") {
|
|
1908
|
+
// nearBottomHeight
|
|
1909
|
+
//
|
|
1910
|
+
return checkWindow();
|
|
1911
|
+
} else if (typeof args[0] === "object" && args[0] instanceof HTMLElement) {
|
|
1912
|
+
// target
|
|
1913
|
+
// target,nearBottomHeight
|
|
1914
|
+
if (typeof args[1] === "number" && !Number.isNaN(args[1])) {
|
|
1915
|
+
nearBottomHeight = args[1];
|
|
1916
|
+
}
|
|
1917
|
+
return checkNode(args[0]);
|
|
1918
|
+
} else {
|
|
1919
|
+
throw new TypeError("参数1类型错误" + typeof firstArg);
|
|
1920
|
+
}
|
|
1875
1921
|
}
|
|
1876
1922
|
/**
|
|
1877
1923
|
* 判断对象是否是元素
|