@whitesev/utils 2.9.6 → 2.9.8
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 +38 -29
- package/dist/index.amd.js.map +1 -1
- package/dist/index.amd.min.js +1 -1
- package/dist/index.amd.min.js.map +1 -1
- package/dist/index.cjs.js +38 -29
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs.min.js +1 -1
- package/dist/index.cjs.min.js.map +1 -1
- package/dist/index.esm.js +38 -29
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/index.iife.js +38 -29
- package/dist/index.iife.js.map +1 -1
- package/dist/index.iife.min.js +1 -1
- package/dist/index.iife.min.js.map +1 -1
- package/dist/index.system.js +38 -29
- package/dist/index.system.js.map +1 -1
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/dist/index.umd.js +38 -29
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/dist/types/src/Utils.d.ts +6 -2
- package/package.json +9 -9
- package/src/CommonUtil.ts +36 -31
- package/src/Utils.ts +7 -2
|
@@ -1425,11 +1425,15 @@ declare class Utils {
|
|
|
1425
1425
|
*/
|
|
1426
1426
|
watchObject(target: any, propertyName: string, getCallBack: (value: any) => void, setCallBack: (value: any) => void): void;
|
|
1427
1427
|
/**
|
|
1428
|
-
*
|
|
1428
|
+
* 深度获取对象的某个属性
|
|
1429
1429
|
* @param target 待获取的对象
|
|
1430
1430
|
* @param handler 获取属性的回调
|
|
1431
1431
|
*/
|
|
1432
|
-
queryProperty<T = any>(target: any, handler: (
|
|
1432
|
+
queryProperty<T = any>(target: any, handler: (
|
|
1433
|
+
/**
|
|
1434
|
+
* 该值为返回的data值
|
|
1435
|
+
*/
|
|
1436
|
+
target: T) => {
|
|
1433
1437
|
/**
|
|
1434
1438
|
* 是否是需要的属性
|
|
1435
1439
|
* + `true` 将目标值赋值给data
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@whitesev/utils",
|
|
4
|
-
"version": "2.9.
|
|
4
|
+
"version": "2.9.8",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "一个常用的工具库",
|
|
7
7
|
"main": "dist/index.cjs.js",
|
|
@@ -39,24 +39,24 @@
|
|
|
39
39
|
"worker-timers": "^8.0.25"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@eslint/js": "^9.
|
|
43
|
-
"@rollup/plugin-commonjs": "^
|
|
42
|
+
"@eslint/js": "^9.39.1",
|
|
43
|
+
"@rollup/plugin-commonjs": "^29.0.0",
|
|
44
44
|
"@rollup/plugin-json": "^6.1.0",
|
|
45
45
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
46
46
|
"@rollup/plugin-terser": "^0.4.4",
|
|
47
47
|
"@rollup/plugin-typescript": "^12.3.0",
|
|
48
|
-
"browserslist": "^4.
|
|
49
|
-
"caniuse-lite": "^1.0.
|
|
50
|
-
"eslint": "^9.
|
|
48
|
+
"browserslist": "^4.28.0",
|
|
49
|
+
"caniuse-lite": "^1.0.30001756",
|
|
50
|
+
"eslint": "^9.39.1",
|
|
51
51
|
"eslint-config-prettier": "^10.1.8",
|
|
52
52
|
"eslint-plugin-compat": "^6.0.2",
|
|
53
53
|
"eslint-plugin-prettier": "^5.5.4",
|
|
54
|
-
"globals": "^16.
|
|
55
|
-
"rollup": "^4.
|
|
54
|
+
"globals": "^16.5.0",
|
|
55
|
+
"rollup": "^4.53.3",
|
|
56
56
|
"rollup-plugin-clear": "^2.0.7",
|
|
57
57
|
"tslib": "^2.8.1",
|
|
58
58
|
"typescript": "^5.9.3",
|
|
59
|
-
"typescript-eslint": "^8.
|
|
59
|
+
"typescript-eslint": "^8.47.0"
|
|
60
60
|
},
|
|
61
61
|
"scripts": {
|
|
62
62
|
"lint": "eslint .",
|
package/src/CommonUtil.ts
CHANGED
|
@@ -33,41 +33,43 @@ class CommonUtil {
|
|
|
33
33
|
if (target == null) {
|
|
34
34
|
target = {};
|
|
35
35
|
}
|
|
36
|
+
// 当前遍历的目标对象
|
|
37
|
+
let iteratorTarget;
|
|
36
38
|
if (isAdd) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const targetValue = Reflect.get(target, targetKeyName);
|
|
40
|
-
const sourceValue = Reflect.get(source, sourceKeyName);
|
|
41
|
-
if (
|
|
42
|
-
typeof sourceValue === "object" &&
|
|
43
|
-
sourceValue != null &&
|
|
44
|
-
sourceKeyName in target &&
|
|
45
|
-
!UtilsContext.isDOM(sourceValue)
|
|
46
|
-
) {
|
|
47
|
-
/* 源端的值是object类型,且不是元素节点 */
|
|
48
|
-
Reflect.set(target, sourceKeyName, UtilsContext.assign(targetValue, sourceValue, isAdd));
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
Reflect.set(target, sourceKeyName, sourceValue);
|
|
52
|
-
}
|
|
39
|
+
// 追加并覆盖是以source为准
|
|
40
|
+
iteratorTarget = source;
|
|
53
41
|
} else {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
42
|
+
// 覆盖以target为准
|
|
43
|
+
iteratorTarget = target;
|
|
44
|
+
}
|
|
45
|
+
for (const keyName in iteratorTarget) {
|
|
46
|
+
if (!isAdd && !(keyName in source)) {
|
|
47
|
+
// 仅替换 但是源端没有此键
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
const targetValue = Reflect.get(target, keyName);
|
|
51
|
+
const sourceValue = Reflect.get(source, keyName);
|
|
52
|
+
if (
|
|
53
|
+
typeof sourceValue === "object" &&
|
|
54
|
+
sourceValue != null &&
|
|
55
|
+
keyName in target &&
|
|
56
|
+
!UtilsContext.isDOM(sourceValue)
|
|
57
|
+
) {
|
|
58
|
+
// 源端的值是object类型,且不是元素节点
|
|
59
|
+
// 如果是数组,那此数组中有值,清空旧的数组再赋值
|
|
60
|
+
let childObjectValue;
|
|
61
|
+
if (Array.isArray(sourceValue)) {
|
|
62
|
+
if (Array.isArray(targetValue)) {
|
|
63
|
+
targetValue.length = 0;
|
|
67
64
|
}
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
childObjectValue = sourceValue;
|
|
66
|
+
} else {
|
|
67
|
+
childObjectValue = UtilsContext.assign(targetValue, sourceValue, isAdd);
|
|
70
68
|
}
|
|
69
|
+
Reflect.set(target, keyName, childObjectValue);
|
|
70
|
+
} else {
|
|
71
|
+
/* 直接赋值 */
|
|
72
|
+
Reflect.set(target, keyName, sourceValue);
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
75
|
|
|
@@ -233,6 +235,9 @@ class CommonUtil {
|
|
|
233
235
|
toJSON<T = any>(data: string | null, errorCallBack?: (error: Error) => void): T;
|
|
234
236
|
toJSON<T = any>(data: string | null, errorCallBack?: (error: Error) => void): T {
|
|
235
237
|
let result: any = {};
|
|
238
|
+
if (data == null) {
|
|
239
|
+
return result as T;
|
|
240
|
+
}
|
|
236
241
|
if (typeof data === "object") {
|
|
237
242
|
return data as T;
|
|
238
243
|
}
|
package/src/Utils.ts
CHANGED
|
@@ -3563,13 +3563,18 @@ class Utils {
|
|
|
3563
3563
|
}
|
|
3564
3564
|
}
|
|
3565
3565
|
/**
|
|
3566
|
-
*
|
|
3566
|
+
* 深度获取对象的某个属性
|
|
3567
3567
|
* @param target 待获取的对象
|
|
3568
3568
|
* @param handler 获取属性的回调
|
|
3569
3569
|
*/
|
|
3570
3570
|
queryProperty<T = any>(
|
|
3571
3571
|
target: any,
|
|
3572
|
-
handler: (
|
|
3572
|
+
handler: (
|
|
3573
|
+
/**
|
|
3574
|
+
* 该值为返回的data值
|
|
3575
|
+
*/
|
|
3576
|
+
target: T
|
|
3577
|
+
) => {
|
|
3573
3578
|
/**
|
|
3574
3579
|
* 是否是需要的属性
|
|
3575
3580
|
* + `true` 将目标值赋值给data
|