wenay-common2 1.0.18 → 1.0.19

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.
@@ -0,0 +1,6 @@
1
+ type Obj = Record<string, any>;
2
+ export declare function CompareKeys<T extends Obj, T2 extends Obj>(obj1: T, obj2: T2): boolean;
3
+ export declare function CompareKeys2<T extends Obj>(obj1: T, keys: string[]): boolean;
4
+ export declare function DeepCompareKeys2<T, T3>(obj1: T, keys: string[], func: (a: any) => T3): T | T3 | null;
5
+ export declare function DeepCompareKeys<T, T2 extends Obj, T3>(obj1: T, obj2: T2, func: (a: T2) => T3): T3 | T | null;
6
+ export {};
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CompareKeys = CompareKeys;
4
+ exports.CompareKeys2 = CompareKeys2;
5
+ exports.DeepCompareKeys2 = DeepCompareKeys2;
6
+ exports.DeepCompareKeys = DeepCompareKeys;
7
+ const isProxy_1 = require("../isProxy");
8
+ function isLeafValue(value) {
9
+ return (value == null ||
10
+ typeof value === "function" ||
11
+ value instanceof Function ||
12
+ typeof value !== "object" ||
13
+ (0, isProxy_1.isProxy)(value));
14
+ }
15
+ function CompareKeys(obj1, obj2) {
16
+ return CompareKeys2(obj1, Object.keys(obj2));
17
+ }
18
+ function CompareKeys2(obj1, keys) {
19
+ const k1 = Object.keys(obj1);
20
+ return k1.length === keys.length && new Set([...k1, ...keys]).size === keys.length;
21
+ }
22
+ function DeepCompareKeys2(obj1, keys, func) {
23
+ if (isLeafValue(obj1))
24
+ return obj1;
25
+ if (CompareKeys2(obj1, keys))
26
+ return func(obj1);
27
+ return Object.fromEntries(Object.entries(obj1).map(([k, v]) => [k, DeepCompareKeys2(v, keys, func)]));
28
+ }
29
+ function DeepCompareKeys(obj1, obj2, func) {
30
+ if (isLeafValue(obj1))
31
+ return obj1;
32
+ const keys = Object.keys(obj2);
33
+ if (CompareKeys2(obj1, keys))
34
+ return func(obj1);
35
+ return Object.fromEntries(Object.entries(obj1).map(([k, v]) => [k, DeepCompareKeys2(v, keys, func)]));
36
+ }
package/lib/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export * from "./Common/core/Decorator";
3
3
  export * from "./Common/core/BaseTypes";
4
4
  export * from "./Common/core/type";
5
5
  export * from "./Common/core/common";
6
+ export * from "./Common/core/DeepCompareKeys";
6
7
  export * from "./Common/core/MemoFunc";
7
8
  export * from "./Common/async/waitRun";
8
9
  export * from "./Common/async/PromiseArrayListen";
package/lib/index.js CHANGED
@@ -42,6 +42,7 @@ __exportStar(require("./Common/core/Decorator"), exports);
42
42
  __exportStar(require("./Common/core/BaseTypes"), exports);
43
43
  __exportStar(require("./Common/core/type"), exports);
44
44
  __exportStar(require("./Common/core/common"), exports);
45
+ __exportStar(require("./Common/core/DeepCompareKeys"), exports);
45
46
  __exportStar(require("./Common/core/MemoFunc"), exports);
46
47
  __exportStar(require("./Common/async/waitRun"), exports);
47
48
  __exportStar(require("./Common/async/PromiseArrayListen"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wenay-common2",
3
- "version": "1.0.18",
3
+ "version": "1.0.19",
4
4
  "description": "Common library",
5
5
  "strict": true,
6
6
  "main": "lib/index.js",