@whitesev/utils 2.9.5 → 2.9.7

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.
@@ -24,7 +24,7 @@ export declare class UtilsGMCookie {
24
24
  };
25
25
  list(option: UtilsGMCookieListOptions | object, callback?: (data: UtilsGMCookieResult[], error?: Error) => void): void;
26
26
  /**
27
- * 获取多组Cookie
27
+ * 获取多组Cookie
28
28
  * @param option 配置
29
29
  **/
30
30
  getList(option: UtilsGMCookieListOptions | object): UtilsGMCookieResult[];
@@ -41,7 +41,8 @@ export declare class UtilsGMCookie {
41
41
  */
42
42
  delete(option: UtilsGMCookieDeleteOptions, callback?: (error?: Error) => void): void;
43
43
  /**
44
- * 解析cookie字符串
44
+ * 解析cookie字符串,按`;`分割
45
+ *
45
46
  * 例如:document.cookie
46
47
  * @param cookieStr
47
48
  */
@@ -73,7 +73,7 @@ export declare class GMMenu {
73
73
  * 根据键值获取callback函数
74
74
  * @param menuKey 菜单-键key
75
75
  */
76
- getCallBack(menuKey: string): ((...args: any[]) => any) | undefined;
76
+ getCallBack(menuKey: string): ((data: import("./types/UtilsGMMenu").UtilsGMMenuClickCallBackData) => void) | undefined;
77
77
  /**
78
78
  * 获取当enable为true时默认显示在菜单中前面的emoji图标
79
79
  */
@@ -101,17 +101,17 @@ export declare class GMMenu {
101
101
  setEnable(menuKey: string, value: boolean): void;
102
102
  /**
103
103
  * 设置当enable为true时默认显示在菜单中前面的emoji图标
104
- * @param emojiString
104
+ * @param emojiString emoji字符串
105
105
  */
106
106
  setEnableTrueEmoji(emojiString: string): void;
107
107
  /**
108
108
  * 设置当enable为false时默认显示在菜单中前面的emoji图标
109
- * @param emojiString
109
+ * @param emojiString emoji字符串
110
110
  */
111
111
  setEnableFalseEmoji(emojiString: string): void;
112
112
  /**
113
113
  * 设置本地存储的菜单外部的键名
114
- * @param keyName
114
+ * @param keyName 键名
115
115
  */
116
116
  setLocalStorageKeyName(keyName: string): void;
117
117
  }
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.5",
4
+ "version": "2.9.7",
5
5
  "type": "module",
6
6
  "description": "一个常用的工具库",
7
7
  "main": "dist/index.cjs.js",
@@ -40,11 +40,11 @@
40
40
  },
41
41
  "devDependencies": {
42
42
  "@eslint/js": "^9.38.0",
43
- "@rollup/plugin-commonjs": "^28.0.8",
43
+ "@rollup/plugin-commonjs": "^28.0.9",
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
- "@rollup/plugin-typescript": "^12.2.0",
47
+ "@rollup/plugin-typescript": "^12.3.0",
48
48
  "browserslist": "^4.27.0",
49
49
  "caniuse-lite": "^1.0.30001751",
50
50
  "eslint": "^9.38.0",
@@ -80,6 +80,9 @@ export class ColorConversion {
80
80
  if (typeof level !== "number") {
81
81
  level = Number(level);
82
82
  }
83
+ if (isNaN(level)) {
84
+ throw new TypeError(`输入错误的level:${level}`);
85
+ }
83
86
  const rgbc = this.hexToRgb(color);
84
87
  for (let index = 0; index < 3; index++) {
85
88
  const rgbcItemValue = rgbc[index];
@@ -101,6 +104,9 @@ export class ColorConversion {
101
104
  if (typeof level !== "number") {
102
105
  level = Number(level);
103
106
  }
107
+ if (isNaN(level)) {
108
+ throw new TypeError(`输入错误的level:${level}`);
109
+ }
104
110
  const rgbc = this.hexToRgb(color);
105
111
  for (let index = 0; index < 3; index++) {
106
112
  const rgbcItemValue = Number(rgbc[index]);
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
- for (const sourceKeyName in source) {
38
- const targetKeyName = sourceKeyName;
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
- for (const targetKeyName in target) {
55
- if (targetKeyName in source) {
56
- const targetValue = Reflect.get(target, targetKeyName);
57
- const sourceValue = Reflect.get(source, targetKeyName);
58
- if (
59
- typeof sourceValue === "object" &&
60
- sourceValue != null &&
61
- !UtilsContext.isDOM(sourceValue) &&
62
- Object.keys(sourceValue).length
63
- ) {
64
- /* 源端的值是object类型,且不是元素节点 */
65
- Reflect.set(target, targetKeyName, UtilsContext.assign(targetValue, sourceValue, isAdd));
66
- continue;
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
- Reflect.set(target, targetKeyName, sourceValue);
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
 
@@ -134,7 +134,7 @@ export class UtilsGMCookie {
134
134
  }
135
135
  }
136
136
  /**
137
- * 获取多组Cookie
137
+ * 获取多组Cookie
138
138
  * @param option 配置
139
139
  **/
140
140
  getList(option: UtilsGMCookieListOptions | object): UtilsGMCookieResult[] {
@@ -246,7 +246,8 @@ export class UtilsGMCookie {
246
246
  }
247
247
  }
248
248
  /**
249
- * 解析cookie字符串
249
+ * 解析cookie字符串,按`;`分割
250
+ *
250
251
  * 例如:document.cookie
251
252
  * @param cookieStr
252
253
  */
@@ -370,7 +370,7 @@ export class GMMenu {
370
370
  * 根据键值获取callback函数
371
371
  * @param menuKey 菜单-键key
372
372
  */
373
- getCallBack(menuKey: string): ((...args: any[]) => any) | undefined {
373
+ getCallBack(menuKey: string) {
374
374
  return this.MenuHandle.getMenuHandledOption(menuKey)?.callback;
375
375
  }
376
376
  /**
@@ -410,31 +410,31 @@ export class GMMenu {
410
410
  }
411
411
  /**
412
412
  * 设置当enable为true时默认显示在菜单中前面的emoji图标
413
- * @param emojiString
413
+ * @param emojiString emoji字符串
414
414
  */
415
415
  setEnableTrueEmoji(emojiString: string) {
416
416
  if (typeof emojiString !== "string") {
417
- throw new Error("参数emojiString必须是string类型");
417
+ throw new TypeError("参数emojiString必须是string类型");
418
418
  }
419
419
  this.MenuHandle.$emoji.success = emojiString;
420
420
  }
421
421
  /**
422
422
  * 设置当enable为false时默认显示在菜单中前面的emoji图标
423
- * @param emojiString
423
+ * @param emojiString emoji字符串
424
424
  */
425
425
  setEnableFalseEmoji(emojiString: string) {
426
426
  if (typeof emojiString !== "string") {
427
- throw new Error("参数emojiString必须是string类型");
427
+ throw new TypeError("参数emojiString必须是string类型");
428
428
  }
429
429
  this.MenuHandle.$emoji.error = emojiString;
430
430
  }
431
431
  /**
432
432
  * 设置本地存储的菜单外部的键名
433
- * @param keyName
433
+ * @param keyName 键名
434
434
  */
435
435
  setLocalStorageKeyName(keyName: string) {
436
436
  if (typeof keyName !== "string") {
437
- throw new Error("参数keyName必须是string类型");
437
+ throw new TypeError("参数keyName必须是string类型");
438
438
  }
439
439
  this.MenuHandle.$data.key = keyName;
440
440
  }