@e280/stz 0.0.0-3 → 0.0.0-31
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/README.md +285 -0
- package/package.json +14 -7
- package/s/clone/clone.test.ts +123 -123
- package/s/coalesce.ts +1 -0
- package/s/data/base-x.ts +170 -0
- package/s/data/base58.ts +15 -5
- package/s/data/base64.ts +15 -6
- package/s/data/base64url.ts +15 -6
- package/s/data/bytename/bytename.test.ts +49 -0
- package/s/data/{barname/barname.ts → bytename/bytename.ts} +38 -10
- package/s/data/bytename/index.ts +4 -0
- package/s/data/bytename/thumbprint.test.ts +53 -0
- package/s/data/bytename/thumbprint.ts +112 -0
- package/s/data/bytes.ts +12 -2
- package/s/data/data.test.ts +98 -0
- package/s/data/hex.ts +15 -5
- package/s/data/txt.ts +14 -4
- package/s/deadline.ts +5 -6
- package/s/debounce/debounce.test.ts +73 -73
- package/s/deep/deep.test.ts +8 -8
- package/s/deep/parts/equal.test.ts +123 -124
- package/s/{defer-promise.ts → defer.ts} +2 -2
- package/s/drill.ts +2 -4
- package/s/ev.ts +20 -0
- package/s/id-counter.ts +9 -0
- package/s/index.ts +16 -2
- package/s/is.ts +10 -4
- package/s/loopy.ts +12 -0
- package/s/map-g.ts +2 -2
- package/s/nap.ts +1 -0
- package/s/once.ts +14 -0
- package/s/pubsub.ts +24 -6
- package/s/queue/queue.test.ts +67 -0
- package/s/queue/queue.ts +21 -0
- package/s/repeat.ts +25 -0
- package/s/tests.test.ts +21 -0
- package/s/time.ts +22 -0
- package/x/clone/clone.test.d.ts +15 -1
- package/x/clone/clone.test.js +106 -124
- package/x/clone/clone.test.js.map +1 -1
- package/x/coalesce.d.ts +1 -0
- package/x/coalesce.js +1 -0
- package/x/coalesce.js.map +1 -1
- package/x/data/base-x.d.ts +47 -0
- package/x/data/base-x.js +147 -0
- package/x/data/base-x.js.map +1 -0
- package/x/data/base58.d.ts +5 -1
- package/x/data/base58.js +13 -5
- package/x/data/base58.js.map +1 -1
- package/x/data/base64.d.ts +7 -3
- package/x/data/base64.js +13 -5
- package/x/data/base64.js.map +1 -1
- package/x/data/base64url.d.ts +5 -1
- package/x/data/base64url.js +13 -5
- package/x/data/base64url.js.map +1 -1
- package/x/data/bytename/bytename.d.ts +19 -0
- package/x/data/{barname/barname.js → bytename/bytename.js} +27 -11
- package/x/data/bytename/bytename.js.map +1 -0
- package/x/data/bytename/bytename.test.d.ts +17 -0
- package/x/data/bytename/bytename.test.js +41 -0
- package/x/data/bytename/bytename.test.js.map +1 -0
- package/x/data/bytename/index.d.ts +2 -0
- package/x/data/bytename/index.js +3 -0
- package/x/data/bytename/index.js.map +1 -0
- package/x/data/bytename/thumbprint.d.ts +36 -0
- package/x/data/bytename/thumbprint.js +79 -0
- package/x/data/bytename/thumbprint.js.map +1 -0
- package/x/data/bytename/thumbprint.test.d.ts +24 -0
- package/x/data/bytename/thumbprint.test.js +45 -0
- package/x/data/bytename/thumbprint.test.js.map +1 -0
- package/x/data/bytename/utils/prefixes.js.map +1 -0
- package/x/data/bytename/utils/suffixes.js.map +1 -0
- package/x/data/bytes.d.ts +3 -2
- package/x/data/bytes.js +11 -2
- package/x/data/bytes.js.map +1 -1
- package/x/data/data.test.d.ts +69 -0
- package/x/data/data.test.js +77 -0
- package/x/data/data.test.js.map +1 -0
- package/x/data/hex.d.ts +8 -4
- package/x/data/hex.js +13 -5
- package/x/data/hex.js.map +1 -1
- package/x/data/txt.d.ts +6 -2
- package/x/data/txt.js +12 -4
- package/x/data/txt.js.map +1 -1
- package/x/deadline.d.ts +2 -2
- package/x/deadline.js +4 -4
- package/x/deadline.js.map +1 -1
- package/x/debounce/debounce.test.d.ts +8 -1
- package/x/debounce/debounce.test.js +70 -74
- package/x/debounce/debounce.test.js.map +1 -1
- package/x/deep/deep.test.d.ts +21 -1
- package/x/deep/deep.test.js +5 -9
- package/x/deep/deep.test.js.map +1 -1
- package/x/deep/parts/equal.test.d.ts +19 -1
- package/x/deep/parts/equal.test.js +107 -125
- package/x/deep/parts/equal.test.js.map +1 -1
- package/x/{defer-promise.d.ts → defer.d.ts} +2 -2
- package/x/{defer-promise.js → defer.js} +2 -2
- package/x/defer.js.map +1 -0
- package/x/drill.d.ts +1 -3
- package/x/drill.js +2 -4
- package/x/drill.js.map +1 -1
- package/x/ev.d.ts +6 -0
- package/x/ev.js +10 -0
- package/x/ev.js.map +1 -0
- package/x/id-counter.d.ts +5 -0
- package/x/id-counter.js +10 -0
- package/x/id-counter.js.map +1 -0
- package/x/index.d.ts +13 -2
- package/x/index.js +13 -2
- package/x/index.js.map +1 -1
- package/x/is.d.ts +6 -4
- package/x/is.js +6 -4
- package/x/is.js.map +1 -1
- package/x/loopy.d.ts +2 -0
- package/x/loopy.js +10 -0
- package/x/loopy.js.map +1 -0
- package/x/map-g.d.ts +3 -3
- package/x/map-g.js +1 -1
- package/x/map-g.js.map +1 -1
- package/x/nap.d.ts +1 -0
- package/x/nap.js +1 -0
- package/x/nap.js.map +1 -1
- package/x/once.d.ts +1 -0
- package/x/once.js +12 -0
- package/x/once.js.map +1 -0
- package/x/pubsub.d.ts +12 -1
- package/x/pubsub.js +7 -5
- package/x/pubsub.js.map +1 -1
- package/x/queue/queue.d.ts +4 -0
- package/x/queue/queue.js +14 -0
- package/x/queue/queue.js.map +1 -0
- package/x/queue/queue.test.d.ts +8 -0
- package/x/queue/queue.test.js +57 -0
- package/x/queue/queue.test.js.map +1 -0
- package/x/repeat.d.ts +5 -0
- package/x/repeat.js +23 -0
- package/x/repeat.js.map +1 -0
- package/x/tests.test.js +18 -0
- package/x/tests.test.js.map +1 -0
- package/x/time.d.ts +18 -0
- package/x/time.js +19 -0
- package/x/time.js.map +1 -0
- package/readme.md +0 -85
- package/s/data/anka.ts +0 -66
- package/s/data/barname/badge.ts +0 -78
- package/s/data/barname/demo.ts +0 -49
- package/s/data/barname/index.ts +0 -4
- package/x/data/anka.d.ts +0 -5
- package/x/data/anka.js +0 -53
- package/x/data/anka.js.map +0 -1
- package/x/data/barname/badge.d.ts +0 -25
- package/x/data/barname/badge.js +0 -64
- package/x/data/barname/badge.js.map +0 -1
- package/x/data/barname/barname.d.ts +0 -7
- package/x/data/barname/barname.js.map +0 -1
- package/x/data/barname/demo.js +0 -45
- package/x/data/barname/demo.js.map +0 -1
- package/x/data/barname/index.d.ts +0 -2
- package/x/data/barname/index.js +0 -3
- package/x/data/barname/index.js.map +0 -1
- package/x/data/barname/utils/prefixes.js.map +0 -1
- package/x/data/barname/utils/suffixes.js.map +0 -1
- package/x/defer-promise.js.map +0 -1
- /package/{license → LICENSE} +0 -0
- /package/s/data/{barname → bytename}/utils/prefixes.ts +0 -0
- /package/s/data/{barname → bytename}/utils/suffixes.ts +0 -0
- /package/x/data/{barname → bytename}/utils/prefixes.d.ts +0 -0
- /package/x/data/{barname → bytename}/utils/prefixes.js +0 -0
- /package/x/data/{barname → bytename}/utils/suffixes.d.ts +0 -0
- /package/x/data/{barname → bytename}/utils/suffixes.js +0 -0
- /package/x/{data/barname/demo.d.ts → tests.test.d.ts} +0 -0
|
@@ -1,75 +1,71 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
// await expect(async() => err()).throws()
|
|
72
|
-
// },
|
|
73
|
-
// }
|
|
74
|
-
//
|
|
1
|
+
import { nap } from "../nap.js";
|
|
2
|
+
import { Science, expect } from "@e280/science";
|
|
3
|
+
import { debounce as debounce } from "./debounce.js";
|
|
4
|
+
export default Science.suite({
|
|
5
|
+
async "reduces many calls into one"() {
|
|
6
|
+
let count = 0;
|
|
7
|
+
const increment = debounce(100, () => {
|
|
8
|
+
count += 1;
|
|
9
|
+
});
|
|
10
|
+
increment();
|
|
11
|
+
increment();
|
|
12
|
+
increment();
|
|
13
|
+
await nap(200);
|
|
14
|
+
expect(count).is(1);
|
|
15
|
+
},
|
|
16
|
+
async "timer gets reset on each call"() {
|
|
17
|
+
let count = 0;
|
|
18
|
+
const increment = debounce(100, () => {
|
|
19
|
+
count += 1;
|
|
20
|
+
});
|
|
21
|
+
increment();
|
|
22
|
+
await nap(50);
|
|
23
|
+
increment();
|
|
24
|
+
await nap(50);
|
|
25
|
+
increment();
|
|
26
|
+
await nap(50);
|
|
27
|
+
increment();
|
|
28
|
+
await nap(50);
|
|
29
|
+
increment();
|
|
30
|
+
expect(count).is(0);
|
|
31
|
+
await nap(101);
|
|
32
|
+
expect(count).is(1);
|
|
33
|
+
},
|
|
34
|
+
async "provides a promise that resolves when done"() {
|
|
35
|
+
let count = 0;
|
|
36
|
+
const increment = debounce(100, () => {
|
|
37
|
+
count += 1;
|
|
38
|
+
});
|
|
39
|
+
let done = false;
|
|
40
|
+
increment()
|
|
41
|
+
.then(() => done = true);
|
|
42
|
+
await nap(50);
|
|
43
|
+
increment();
|
|
44
|
+
await nap(50);
|
|
45
|
+
increment();
|
|
46
|
+
await nap(50);
|
|
47
|
+
increment();
|
|
48
|
+
await nap(50);
|
|
49
|
+
increment();
|
|
50
|
+
expect(done).is(false);
|
|
51
|
+
await nap(201);
|
|
52
|
+
expect(done).is(true);
|
|
53
|
+
},
|
|
54
|
+
async "can wait multiple rounds"() {
|
|
55
|
+
let count = 0;
|
|
56
|
+
const increment = debounce(100, () => {
|
|
57
|
+
count += 1;
|
|
58
|
+
});
|
|
59
|
+
await increment();
|
|
60
|
+
expect(count).is(1);
|
|
61
|
+
await increment();
|
|
62
|
+
expect(count).is(2);
|
|
63
|
+
},
|
|
64
|
+
async "errors are passed into promise chain"() {
|
|
65
|
+
const err = debounce(1, () => {
|
|
66
|
+
throw new Error();
|
|
67
|
+
});
|
|
68
|
+
await expect(async () => err()).throwsAsync();
|
|
69
|
+
},
|
|
70
|
+
});
|
|
75
71
|
//# sourceMappingURL=debounce.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debounce.test.js","sourceRoot":"","sources":["../../s/debounce/debounce.test.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"debounce.test.js","sourceRoot":"","sources":["../../s/debounce/debounce.test.ts"],"names":[],"mappings":"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"}
|
package/x/deep/deep.test.d.ts
CHANGED
|
@@ -1 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
declare const _default: {
|
|
2
|
+
deepEqual: {
|
|
3
|
+
"compare primitive types"(): Promise<void>;
|
|
4
|
+
"compare arrays"(): Promise<void>;
|
|
5
|
+
"compare plain objects"(): Promise<void>;
|
|
6
|
+
"compare nested objects"(): Promise<void>;
|
|
7
|
+
"compare array of objects"(): Promise<void>;
|
|
8
|
+
"compare null and undefined"(): Promise<void>;
|
|
9
|
+
"compare with nested arrays"(): Promise<void>;
|
|
10
|
+
"circularity is forbidden"(): Promise<void>;
|
|
11
|
+
"duplicate references are allowed"(): Promise<void>;
|
|
12
|
+
"maps and sets": {
|
|
13
|
+
"compare maps"(): Promise<void>;
|
|
14
|
+
"compare sets"(): Promise<void>;
|
|
15
|
+
"compare nested maps and sets"(): Promise<void>;
|
|
16
|
+
"compare complex structures"(): Promise<void>;
|
|
17
|
+
"compare edge cases"(): Promise<void>;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export default _default;
|
package/x/deep/deep.test.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
// export default <Suite>{
|
|
7
|
-
// deepEqual,
|
|
8
|
-
// }
|
|
9
|
-
//
|
|
1
|
+
import { Science } from "@e280/science";
|
|
2
|
+
import deepEqual from "./parts/equal.test.js";
|
|
3
|
+
export default Science.suite({
|
|
4
|
+
deepEqual,
|
|
5
|
+
});
|
|
10
6
|
//# sourceMappingURL=deep.test.js.map
|
package/x/deep/deep.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep.test.js","sourceRoot":"","sources":["../../s/deep/deep.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deep.test.js","sourceRoot":"","sources":["../../s/deep/deep.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AACrC,OAAO,SAAS,MAAM,uBAAuB,CAAA;AAE7C,eAAe,OAAO,CAAC,KAAK,CAAC;IAC5B,SAAS;CACT,CAAC,CAAA"}
|
|
@@ -1 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
declare const _default: {
|
|
2
|
+
"compare primitive types"(): Promise<void>;
|
|
3
|
+
"compare arrays"(): Promise<void>;
|
|
4
|
+
"compare plain objects"(): Promise<void>;
|
|
5
|
+
"compare nested objects"(): Promise<void>;
|
|
6
|
+
"compare array of objects"(): Promise<void>;
|
|
7
|
+
"compare null and undefined"(): Promise<void>;
|
|
8
|
+
"compare with nested arrays"(): Promise<void>;
|
|
9
|
+
"circularity is forbidden"(): Promise<void>;
|
|
10
|
+
"duplicate references are allowed"(): Promise<void>;
|
|
11
|
+
"maps and sets": {
|
|
12
|
+
"compare maps"(): Promise<void>;
|
|
13
|
+
"compare sets"(): Promise<void>;
|
|
14
|
+
"compare nested maps and sets"(): Promise<void>;
|
|
15
|
+
"compare complex structures"(): Promise<void>;
|
|
16
|
+
"compare edge cases"(): Promise<void>;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export default _default;
|
|
@@ -1,126 +1,108 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
// expect(deepEqual(map1, map2)).equals(true)
|
|
109
|
-
// expect(deepEqual(map1, map3)).equals(false)
|
|
110
|
-
// },
|
|
111
|
-
//
|
|
112
|
-
// async "compare edge cases"() {
|
|
113
|
-
// const emptyMap1 = new Map()
|
|
114
|
-
// const emptyMap2 = new Map()
|
|
115
|
-
// const emptySet1 = new Set()
|
|
116
|
-
// const emptySet2 = new Set()
|
|
117
|
-
// const mixedMap1 = new Map([['b', 2], ['a', 1]])
|
|
118
|
-
// const mixedMap2 = new Map([['a', 1], ['b', 2]])
|
|
119
|
-
// expect(deepEqual(emptyMap1, emptyMap2)).equals(true)
|
|
120
|
-
// expect(deepEqual(emptySet1, emptySet2)).equals(true)
|
|
121
|
-
// expect(deepEqual(mixedMap1, mixedMap2)).equals(true)
|
|
122
|
-
// },
|
|
123
|
-
// },
|
|
124
|
-
// }
|
|
125
|
-
//
|
|
1
|
+
import { deepEqual } from "./equal.js";
|
|
2
|
+
import { Science, expect } from "@e280/science";
|
|
3
|
+
export default Science.suite({
|
|
4
|
+
async "compare primitive types"() {
|
|
5
|
+
expect(deepEqual(123, 123)).is(true);
|
|
6
|
+
expect(deepEqual("abc", "abc")).is(true);
|
|
7
|
+
expect(deepEqual(true, true)).is(true);
|
|
8
|
+
expect(deepEqual(123, "123")).is(false);
|
|
9
|
+
expect(deepEqual(true, 1)).is(false);
|
|
10
|
+
},
|
|
11
|
+
async "compare arrays"() {
|
|
12
|
+
const array1 = [1, 2, 3];
|
|
13
|
+
const array2 = [1, 2, 3];
|
|
14
|
+
const array3 = [1, 2, 4];
|
|
15
|
+
expect(deepEqual(array1, array2)).is(true);
|
|
16
|
+
expect(deepEqual(array1, array3)).is(false);
|
|
17
|
+
},
|
|
18
|
+
async "compare plain objects"() {
|
|
19
|
+
const obj1 = { foo: "bar", baz: 123 };
|
|
20
|
+
const obj2 = { foo: "bar", baz: 123 };
|
|
21
|
+
const obj3 = { foo: "bar", baz: 124 };
|
|
22
|
+
expect(deepEqual(obj1, obj2)).is(true);
|
|
23
|
+
expect(deepEqual(obj1, obj3)).is(false);
|
|
24
|
+
},
|
|
25
|
+
async "compare nested objects"() {
|
|
26
|
+
const obj1 = { foo: "bar", inner: { baz: 123, deeper: { qux: true } } };
|
|
27
|
+
const obj2 = { foo: "bar", inner: { baz: 123, deeper: { qux: true } } };
|
|
28
|
+
const obj3 = { foo: "bar", inner: { baz: 124, deeper: { qux: true } } };
|
|
29
|
+
expect(deepEqual(obj1, obj2)).is(true);
|
|
30
|
+
expect(deepEqual(obj1, obj3)).is(false);
|
|
31
|
+
},
|
|
32
|
+
async "compare array of objects"() {
|
|
33
|
+
const arr1 = [{ foo: "bar" }, { baz: 123 }, { qux: true }];
|
|
34
|
+
const arr2 = [{ foo: "bar" }, { baz: 123 }, { qux: true }];
|
|
35
|
+
const arr3 = [{ foo: "bar" }, { baz: 123 }, { qux: false }];
|
|
36
|
+
expect(deepEqual(arr1, arr2)).is(true);
|
|
37
|
+
expect(deepEqual(arr1, arr3)).is(false);
|
|
38
|
+
},
|
|
39
|
+
async "compare null and undefined"() {
|
|
40
|
+
expect(deepEqual(null, null)).is(true);
|
|
41
|
+
expect(deepEqual(undefined, undefined)).is(true);
|
|
42
|
+
expect(deepEqual(null, undefined)).is(false);
|
|
43
|
+
},
|
|
44
|
+
async "compare with nested arrays"() {
|
|
45
|
+
const obj1 = { foo: "bar", array: [1, 2, [3, 4]] };
|
|
46
|
+
const obj2 = { foo: "bar", array: [1, 2, [3, 4]] };
|
|
47
|
+
const obj3 = { foo: "bar", array: [1, 2, [3, 5]] };
|
|
48
|
+
expect(deepEqual(obj1, obj2)).is(true);
|
|
49
|
+
expect(deepEqual(obj1, obj3)).is(false);
|
|
50
|
+
},
|
|
51
|
+
async "circularity is forbidden"() {
|
|
52
|
+
const obj1 = { alpha: 1 };
|
|
53
|
+
const obj2 = { alpha: 1 };
|
|
54
|
+
obj1.bravo = obj1;
|
|
55
|
+
obj2.bravo = obj2;
|
|
56
|
+
expect(() => deepEqual(obj1, obj2)).throws();
|
|
57
|
+
},
|
|
58
|
+
async "duplicate references are allowed"() {
|
|
59
|
+
const dupe = { a: 123 };
|
|
60
|
+
const obj1 = { alpha: 1, dupe };
|
|
61
|
+
const obj2 = { alpha: 1, dupe };
|
|
62
|
+
const obj3 = { alpha: 1, dupe: { a: 0 } };
|
|
63
|
+
expect(deepEqual(obj1, obj2)).is(true);
|
|
64
|
+
expect(deepEqual(obj1, obj3)).is(false);
|
|
65
|
+
},
|
|
66
|
+
"maps and sets": {
|
|
67
|
+
async "compare maps"() {
|
|
68
|
+
const map1 = new Map([['key1', 'value1'], ['key2', 'value2']]);
|
|
69
|
+
const map2 = new Map([['key1', 'value1'], ['key2', 'value2']]);
|
|
70
|
+
const map3 = new Map([['key1', 'value1'], ['key2', 'value3']]);
|
|
71
|
+
expect(deepEqual(map1, map2)).is(true);
|
|
72
|
+
expect(deepEqual(map1, map3)).is(false);
|
|
73
|
+
},
|
|
74
|
+
async "compare sets"() {
|
|
75
|
+
const set1 = new Set([1, 2, 3]);
|
|
76
|
+
const set2 = new Set([1, 2, 3]);
|
|
77
|
+
const set3 = new Set([1, 2, 4]);
|
|
78
|
+
expect(deepEqual(set1, set2)).is(true);
|
|
79
|
+
expect(deepEqual(set1, set3)).is(false);
|
|
80
|
+
},
|
|
81
|
+
async "compare nested maps and sets"() {
|
|
82
|
+
const obj1 = { map: new Map([['key', new Set([1, 2, 3])]]) };
|
|
83
|
+
const obj2 = { map: new Map([['key', new Set([1, 2, 3])]]) };
|
|
84
|
+
const obj3 = { map: new Map([['key', new Set([1, 2, 4])]]) };
|
|
85
|
+
expect(deepEqual(obj1, obj2)).is(true);
|
|
86
|
+
expect(deepEqual(obj1, obj3)).is(false);
|
|
87
|
+
},
|
|
88
|
+
async "compare complex structures"() {
|
|
89
|
+
const map1 = new Map([['set', new Set([{ a: 1 }, { b: 2 }])]]);
|
|
90
|
+
const map2 = new Map([['set', new Set([{ a: 1 }, { b: 2 }])]]);
|
|
91
|
+
const map3 = new Map([['set', new Set([{ a: 1 }, { b: 3 }])]]);
|
|
92
|
+
expect(deepEqual(map1, map2)).is(true);
|
|
93
|
+
expect(deepEqual(map1, map3)).is(false);
|
|
94
|
+
},
|
|
95
|
+
async "compare edge cases"() {
|
|
96
|
+
const emptyMap1 = new Map();
|
|
97
|
+
const emptyMap2 = new Map();
|
|
98
|
+
const emptySet1 = new Set();
|
|
99
|
+
const emptySet2 = new Set();
|
|
100
|
+
const mixedMap1 = new Map([['b', 2], ['a', 1]]);
|
|
101
|
+
const mixedMap2 = new Map([['a', 1], ['b', 2]]);
|
|
102
|
+
expect(deepEqual(emptyMap1, emptyMap2)).is(true);
|
|
103
|
+
expect(deepEqual(emptySet1, emptySet2)).is(true);
|
|
104
|
+
expect(deepEqual(mixedMap1, mixedMap2)).is(true);
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
});
|
|
126
108
|
//# sourceMappingURL=equal.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equal.test.js","sourceRoot":"","sources":["../../../s/deep/parts/equal.test.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"equal.test.js","sourceRoot":"","sources":["../../../s/deep/parts/equal.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAA;AACpC,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,eAAe,CAAA;AAE7C,eAAe,OAAO,CAAC,KAAK,CAAC;IAC5B,KAAK,CAAC,yBAAyB;QAC9B,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACxC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACtC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QACvC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,gBAAgB;QACrB,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACxB,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACxB,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACxB,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC5B,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;QACrC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;QACrC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;QACrC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACtC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC7B,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAC,EAAC,CAAA;QACrE,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAC,EAAC,CAAA;QACrE,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAC,EAAC,CAAA;QACrE,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACtC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC/B,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1D,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1D,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;QAC3D,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACtC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,4BAA4B;QACjC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACtC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QAChD,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,4BAA4B;QACjC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAClD,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAClD,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAClD,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACtC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC/B,MAAM,IAAI,GAAG,EAAC,KAAK,EAAE,CAAC,EAAQ,CAAA;QAC9B,MAAM,IAAI,GAAG,EAAC,KAAK,EAAE,CAAC,EAAQ,CAAA;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,kCAAkC;QACvC,MAAM,IAAI,GAAG,EAAC,CAAC,EAAE,GAAG,EAAC,CAAA;QACrB,MAAM,IAAI,GAAG,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC,CAAA;QAC7B,MAAM,IAAI,GAAG,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC,CAAA;QAC7B,MAAM,IAAI,GAAG,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAC,CAAA;QACrC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACtC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;IAED,eAAe,EAAE;QAChB,KAAK,CAAC,cAAc;YACnB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;YAC9D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;YAC9D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;YAC9D,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YACtC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QACxC,CAAC;QAED,KAAK,CAAC,cAAc;YACnB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAC/B,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YACtC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QACxC,CAAC;QAED,KAAK,CAAC,8BAA8B;YACnC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAC5D,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAC5D,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAC5D,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YACtC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QACxC,CAAC;QAED,KAAK,CAAC,4BAA4B;YACjC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC9D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC9D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC9D,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YACtC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QACxC,CAAC;QAED,KAAK,CAAC,oBAAoB;YACzB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAA;YAC3B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAA;YAC3B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAA;YAC3B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAA;YAC3B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YAC/C,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YAChD,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YAChD,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACjD,CAAC;KACD;CACD,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** a promise which can be resolved from the outside */
|
|
2
|
-
export type
|
|
2
|
+
export type Deferred<R = void> = {
|
|
3
3
|
promise: Promise<R>;
|
|
4
4
|
resolve: (result: R) => void;
|
|
5
5
|
reject: (reason: any) => void;
|
|
@@ -7,4 +7,4 @@ export type DeferredPromise<R> = {
|
|
|
7
7
|
entangle: (outsidePromise: Promise<R>) => Promise<R>;
|
|
8
8
|
};
|
|
9
9
|
/** returns a deferred promise with exposed resolve and reject fns */
|
|
10
|
-
export declare function
|
|
10
|
+
export declare function defer<R = void>(): Deferred<R>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** returns a deferred promise with exposed resolve and reject fns */
|
|
2
|
-
export function
|
|
2
|
+
export function defer() {
|
|
3
3
|
let resolve;
|
|
4
4
|
let reject;
|
|
5
5
|
const promise = new Promise((res, rej) => {
|
|
@@ -12,4 +12,4 @@ export function deferPromise() {
|
|
|
12
12
|
}
|
|
13
13
|
return { promise, resolve, reject, entangle };
|
|
14
14
|
}
|
|
15
|
-
//# sourceMappingURL=defer
|
|
15
|
+
//# sourceMappingURL=defer.js.map
|
package/x/defer.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defer.js","sourceRoot":"","sources":["../s/defer.ts"],"names":[],"mappings":"AAWA,qEAAqE;AACrE,MAAM,UAAU,KAAK;IACpB,IAAI,OAA6B,CAAA;IACjC,IAAI,MAA8B,CAAA;IAElC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3C,OAAO,GAAG,GAAG,CAAA;QACb,MAAM,GAAG,GAAG,CAAA;IACb,CAAC,CAAC,CAAA;IAEF,SAAS,QAAQ,CAAC,OAAmB;QACpC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,OAAO,OAAO,CAAA;IACf,CAAC;IAED,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAC,CAAA;AAC5C,CAAC"}
|
package/x/drill.d.ts
CHANGED
package/x/drill.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { is } from "./is.js";
|
|
2
|
-
/**
|
|
3
|
-
* return a value within an object tree, found at the given path.
|
|
4
|
-
*/
|
|
2
|
+
/** return a value within an object tree, found at the given path. */
|
|
5
3
|
export function drill(object, path) {
|
|
6
4
|
let current = object;
|
|
7
5
|
for (const key of path) {
|
|
8
6
|
current = current[key];
|
|
9
|
-
if (is.
|
|
7
|
+
if (is.unset(current))
|
|
10
8
|
break;
|
|
11
9
|
}
|
|
12
10
|
return current;
|
package/x/drill.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drill.js","sourceRoot":"","sources":["../s/drill.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,EAAE,EAAC,MAAM,SAAS,CAAA;AAE1B
|
|
1
|
+
{"version":3,"file":"drill.js","sourceRoot":"","sources":["../s/drill.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,EAAE,EAAC,MAAM,SAAS,CAAA;AAE1B,qEAAqE;AACrE,MAAM,UAAU,KAAK,CACnB,MAA4B,EAC5B,IAAc;IAGf,IAAI,OAAO,GAAQ,MAAM,CAAA;IAEzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QACtB,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YACpB,MAAK;IACP,CAAC;IAED,OAAO,OAAO,CAAA;AACf,CAAC"}
|
package/x/ev.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type EvFn = (...a: any[]) => void;
|
|
2
|
+
export type EvTarget<N extends string> = {
|
|
3
|
+
addEventListener(name: N, fn: EvFn): void;
|
|
4
|
+
removeEventListener(name: N, fn: EvFn): void;
|
|
5
|
+
};
|
|
6
|
+
export declare function ev<N extends string>(target: EvTarget<N>, fns: Record<N, EvFn>): () => void;
|
package/x/ev.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function ev(target, fns) {
|
|
2
|
+
const entries = Object.entries(fns);
|
|
3
|
+
for (const [name, fn] of entries)
|
|
4
|
+
target.addEventListener(name, fn);
|
|
5
|
+
return () => {
|
|
6
|
+
for (const [name, fn] of entries)
|
|
7
|
+
target.removeEventListener(name, fn);
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=ev.js.map
|
package/x/ev.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ev.js","sourceRoot":"","sources":["../s/ev.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,EAAE,CAAmB,MAAmB,EAAE,GAAoB;IAC7E,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAgB,CAAA;IAElD,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,OAAO;QAC/B,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAElC,OAAO,GAAG,EAAE;QACX,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,OAAO;YAC/B,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACtC,CAAC,CAAA;AACF,CAAC"}
|
package/x/id-counter.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-counter.js","sourceRoot":"","sources":["../s/id-counter.ts"],"names":[],"mappings":"AACA,MAAM,OAAO,SAAS;IACF;IAAnB,YAAmB,QAAQ,CAAC;QAAT,UAAK,GAAL,KAAK,CAAI;IAAG,CAAC;IAEhC,IAAI;QACH,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;CACD"}
|