@just-io/utils 1.4.0 → 2.0.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/cjs/deep-map.js +55 -16
- package/dist/cjs/event-emitter.js +41 -6
- package/dist/mjs/deep-map.js +54 -12
- package/dist/mjs/event-emitter.js +37 -4
- package/dist/types/deep-map.d.ts +9 -5
- package/dist/types/event-emitter.d.ts +15 -4
- package/package.json +1 -1
package/dist/cjs/deep-map.js
CHANGED
|
@@ -10,16 +10,21 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
11
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
12
|
};
|
|
13
|
-
var _DeepMap_instances, _DeepMap_rootNode, _DeepMap_entries;
|
|
13
|
+
var _DeepMap_instances, _DeepMap_rootNode, _DeepMap_node, _DeepMap_entries;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.DeepMap = void 0;
|
|
16
16
|
class DeepMap extends Map {
|
|
17
|
-
constructor() {
|
|
18
|
-
super(
|
|
17
|
+
constructor(iterable) {
|
|
18
|
+
super();
|
|
19
19
|
_DeepMap_instances.add(this);
|
|
20
20
|
_DeepMap_rootNode.set(this, {
|
|
21
21
|
children: new Map(),
|
|
22
22
|
});
|
|
23
|
+
if (iterable) {
|
|
24
|
+
for (const entry of iterable) {
|
|
25
|
+
this.set(entry[0], entry[1]);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
23
28
|
}
|
|
24
29
|
clear() {
|
|
25
30
|
__classPrivateFieldSet(this, _DeepMap_rootNode, {
|
|
@@ -28,7 +33,7 @@ class DeepMap extends Map {
|
|
|
28
33
|
}
|
|
29
34
|
set(keys, value) {
|
|
30
35
|
let node = __classPrivateFieldGet(this, _DeepMap_rootNode, "f");
|
|
31
|
-
for (const key of keys) {
|
|
36
|
+
for (const key of Array.isArray(keys) ? keys : [keys]) {
|
|
32
37
|
if (!node.children.has(key)) {
|
|
33
38
|
node.children.set(key, {
|
|
34
39
|
children: new Map(),
|
|
@@ -40,18 +45,12 @@ class DeepMap extends Map {
|
|
|
40
45
|
return this;
|
|
41
46
|
}
|
|
42
47
|
get(keys) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (!node.children.has(key)) {
|
|
46
|
-
return undefined;
|
|
47
|
-
}
|
|
48
|
-
node = node.children.get(key);
|
|
49
|
-
}
|
|
50
|
-
return node.value;
|
|
48
|
+
var _a;
|
|
49
|
+
return (_a = __classPrivateFieldGet(this, _DeepMap_instances, "m", _DeepMap_node).call(this, keys)) === null || _a === void 0 ? void 0 : _a.value;
|
|
51
50
|
}
|
|
52
51
|
has(keys) {
|
|
53
52
|
let node = __classPrivateFieldGet(this, _DeepMap_rootNode, "f");
|
|
54
|
-
for (const key of keys) {
|
|
53
|
+
for (const key of Array.isArray(keys) ? keys : [keys]) {
|
|
55
54
|
if (!node.children.has(key)) {
|
|
56
55
|
return false;
|
|
57
56
|
}
|
|
@@ -62,7 +61,7 @@ class DeepMap extends Map {
|
|
|
62
61
|
delete(keys) {
|
|
63
62
|
let node = __classPrivateFieldGet(this, _DeepMap_rootNode, "f");
|
|
64
63
|
const entries = [[undefined, __classPrivateFieldGet(this, _DeepMap_rootNode, "f")]];
|
|
65
|
-
for (const key of keys) {
|
|
64
|
+
for (const key of Array.isArray(keys) ? keys : [keys]) {
|
|
66
65
|
if (!node.children.has(key)) {
|
|
67
66
|
return false;
|
|
68
67
|
}
|
|
@@ -80,11 +79,42 @@ class DeepMap extends Map {
|
|
|
80
79
|
}
|
|
81
80
|
return true;
|
|
82
81
|
}
|
|
83
|
-
|
|
82
|
+
take(keys) {
|
|
84
83
|
const value = this.get(keys);
|
|
85
84
|
this.delete(keys);
|
|
86
85
|
return value;
|
|
87
86
|
}
|
|
87
|
+
clone(keys) {
|
|
88
|
+
const node = __classPrivateFieldGet(this, _DeepMap_instances, "m", _DeepMap_node).call(this, keys);
|
|
89
|
+
const map = new DeepMap();
|
|
90
|
+
if (node) {
|
|
91
|
+
for (const entry of __classPrivateFieldGet(this, _DeepMap_instances, "m", _DeepMap_entries).call(this, node, [])) {
|
|
92
|
+
map.set(entry[0], entry[1]);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return map;
|
|
96
|
+
}
|
|
97
|
+
extract(keys) {
|
|
98
|
+
const node = __classPrivateFieldGet(this, _DeepMap_instances, "m", _DeepMap_node).call(this, keys);
|
|
99
|
+
const map = new DeepMap();
|
|
100
|
+
if (node) {
|
|
101
|
+
for (const entry of __classPrivateFieldGet(this, _DeepMap_instances, "m", _DeepMap_entries).call(this, node, [])) {
|
|
102
|
+
map.set(entry[0], entry[1]);
|
|
103
|
+
}
|
|
104
|
+
if (node.value !== undefined) {
|
|
105
|
+
map.set([], node.value);
|
|
106
|
+
}
|
|
107
|
+
node.children = new Map();
|
|
108
|
+
node.value = undefined;
|
|
109
|
+
}
|
|
110
|
+
return map;
|
|
111
|
+
}
|
|
112
|
+
append(keys, iterable) {
|
|
113
|
+
for (const entry of iterable) {
|
|
114
|
+
this.set((Array.isArray(keys) ? keys : [keys]).concat(entry[0]), entry[1]);
|
|
115
|
+
}
|
|
116
|
+
return this;
|
|
117
|
+
}
|
|
88
118
|
get size() {
|
|
89
119
|
let count = 0;
|
|
90
120
|
for (const {} of __classPrivateFieldGet(this, _DeepMap_instances, "m", _DeepMap_entries).call(this, __classPrivateFieldGet(this, _DeepMap_rootNode, "f"), [])) {
|
|
@@ -97,7 +127,16 @@ class DeepMap extends Map {
|
|
|
97
127
|
callbackfn(entry[1], entry[0], this);
|
|
98
128
|
}
|
|
99
129
|
}
|
|
100
|
-
[(_DeepMap_rootNode = new WeakMap(), _DeepMap_instances = new WeakSet(),
|
|
130
|
+
[(_DeepMap_rootNode = new WeakMap(), _DeepMap_instances = new WeakSet(), _DeepMap_node = function _DeepMap_node(keys) {
|
|
131
|
+
let node = __classPrivateFieldGet(this, _DeepMap_rootNode, "f");
|
|
132
|
+
for (const key of Array.isArray(keys) ? keys : [keys]) {
|
|
133
|
+
if (!node.children.has(key)) {
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
node = node.children.get(key);
|
|
137
|
+
}
|
|
138
|
+
return node;
|
|
139
|
+
}, _DeepMap_entries = function* _DeepMap_entries(node, key) {
|
|
101
140
|
if (node.value !== undefined) {
|
|
102
141
|
yield [key, node.value];
|
|
103
142
|
}
|
|
@@ -10,9 +10,9 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
11
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
12
|
};
|
|
13
|
-
var _Notifier_subscribers, _Notifier_onceSubscribers, _EventEmitter_subscribers, _EventEmitter_onceSubscribers;
|
|
13
|
+
var _Notifier_subscribers, _Notifier_onceSubscribers, _EventStore_eventEmitter, _EventStore_eventTuples, _EventEmitter_subscribers, _EventEmitter_onceSubscribers;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.EventEmitter = exports.Notifier = void 0;
|
|
15
|
+
exports.EventEmitter = exports.EventStore = exports.Notifier = void 0;
|
|
16
16
|
class Notifier {
|
|
17
17
|
constructor() {
|
|
18
18
|
_Notifier_subscribers.set(this, new Set());
|
|
@@ -40,12 +40,38 @@ class Notifier {
|
|
|
40
40
|
}
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
|
-
|
|
43
|
+
unsubscribeAll() {
|
|
44
44
|
__classPrivateFieldSet(this, _Notifier_subscribers, new Set(), "f");
|
|
45
|
+
__classPrivateFieldSet(this, _Notifier_onceSubscribers, new WeakSet(), "f");
|
|
45
46
|
}
|
|
46
47
|
}
|
|
47
48
|
exports.Notifier = Notifier;
|
|
48
49
|
_Notifier_subscribers = new WeakMap(), _Notifier_onceSubscribers = new WeakMap();
|
|
50
|
+
class EventStore {
|
|
51
|
+
constructor(eventEmitter) {
|
|
52
|
+
_EventStore_eventEmitter.set(this, void 0);
|
|
53
|
+
_EventStore_eventTuples.set(this, []);
|
|
54
|
+
__classPrivateFieldSet(this, _EventStore_eventEmitter, eventEmitter, "f");
|
|
55
|
+
}
|
|
56
|
+
add(event, ...args) {
|
|
57
|
+
__classPrivateFieldGet(this, _EventStore_eventTuples, "f").push([event, ...args]);
|
|
58
|
+
}
|
|
59
|
+
emit() {
|
|
60
|
+
for (const eventTuple of __classPrivateFieldGet(this, _EventStore_eventTuples, "f")) {
|
|
61
|
+
__classPrivateFieldGet(this, _EventStore_eventEmitter, "f").emit(...eventTuple);
|
|
62
|
+
}
|
|
63
|
+
__classPrivateFieldSet(this, _EventStore_eventTuples, [], "f");
|
|
64
|
+
}
|
|
65
|
+
consume(eventStore) {
|
|
66
|
+
__classPrivateFieldGet(this, _EventStore_eventTuples, "f").push(...__classPrivateFieldGet(eventStore, _EventStore_eventTuples, "f"));
|
|
67
|
+
__classPrivateFieldSet(eventStore, _EventStore_eventTuples, [], "f");
|
|
68
|
+
}
|
|
69
|
+
clean() {
|
|
70
|
+
__classPrivateFieldSet(this, _EventStore_eventTuples, [], "f");
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.EventStore = EventStore;
|
|
74
|
+
_EventStore_eventEmitter = new WeakMap(), _EventStore_eventTuples = new WeakMap();
|
|
49
75
|
class EventEmitter {
|
|
50
76
|
constructor() {
|
|
51
77
|
_EventEmitter_subscribers.set(this, {});
|
|
@@ -86,9 +112,18 @@ class EventEmitter {
|
|
|
86
112
|
}
|
|
87
113
|
});
|
|
88
114
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
115
|
+
unsubscribeAll(event) {
|
|
116
|
+
if (event) {
|
|
117
|
+
__classPrivateFieldGet(this, _EventEmitter_subscribers, "f")[event] = new Set();
|
|
118
|
+
__classPrivateFieldGet(this, _EventEmitter_onceSubscribers, "f")[event] = new WeakSet();
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
__classPrivateFieldSet(this, _EventEmitter_subscribers, {}, "f");
|
|
122
|
+
__classPrivateFieldSet(this, _EventEmitter_onceSubscribers, {}, "f");
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
makeStore() {
|
|
126
|
+
return new EventStore(this);
|
|
92
127
|
}
|
|
93
128
|
}
|
|
94
129
|
exports.EventEmitter = EventEmitter;
|
package/dist/mjs/deep-map.js
CHANGED
|
@@ -2,6 +2,24 @@ export class DeepMap extends Map {
|
|
|
2
2
|
#rootNode = {
|
|
3
3
|
children: new Map(),
|
|
4
4
|
};
|
|
5
|
+
constructor(iterable) {
|
|
6
|
+
super();
|
|
7
|
+
if (iterable) {
|
|
8
|
+
for (const entry of iterable) {
|
|
9
|
+
this.set(entry[0], entry[1]);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
#node(keys) {
|
|
14
|
+
let node = this.#rootNode;
|
|
15
|
+
for (const key of Array.isArray(keys) ? keys : [keys]) {
|
|
16
|
+
if (!node.children.has(key)) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
node = node.children.get(key);
|
|
20
|
+
}
|
|
21
|
+
return node;
|
|
22
|
+
}
|
|
5
23
|
*#entries(node, key) {
|
|
6
24
|
if (node.value !== undefined) {
|
|
7
25
|
yield [key, node.value];
|
|
@@ -17,7 +35,7 @@ export class DeepMap extends Map {
|
|
|
17
35
|
}
|
|
18
36
|
set(keys, value) {
|
|
19
37
|
let node = this.#rootNode;
|
|
20
|
-
for (const key of keys) {
|
|
38
|
+
for (const key of Array.isArray(keys) ? keys : [keys]) {
|
|
21
39
|
if (!node.children.has(key)) {
|
|
22
40
|
node.children.set(key, {
|
|
23
41
|
children: new Map(),
|
|
@@ -29,18 +47,11 @@ export class DeepMap extends Map {
|
|
|
29
47
|
return this;
|
|
30
48
|
}
|
|
31
49
|
get(keys) {
|
|
32
|
-
|
|
33
|
-
for (const key of keys) {
|
|
34
|
-
if (!node.children.has(key)) {
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
37
|
-
node = node.children.get(key);
|
|
38
|
-
}
|
|
39
|
-
return node.value;
|
|
50
|
+
return this.#node(keys)?.value;
|
|
40
51
|
}
|
|
41
52
|
has(keys) {
|
|
42
53
|
let node = this.#rootNode;
|
|
43
|
-
for (const key of keys) {
|
|
54
|
+
for (const key of Array.isArray(keys) ? keys : [keys]) {
|
|
44
55
|
if (!node.children.has(key)) {
|
|
45
56
|
return false;
|
|
46
57
|
}
|
|
@@ -51,7 +62,7 @@ export class DeepMap extends Map {
|
|
|
51
62
|
delete(keys) {
|
|
52
63
|
let node = this.#rootNode;
|
|
53
64
|
const entries = [[undefined, this.#rootNode]];
|
|
54
|
-
for (const key of keys) {
|
|
65
|
+
for (const key of Array.isArray(keys) ? keys : [keys]) {
|
|
55
66
|
if (!node.children.has(key)) {
|
|
56
67
|
return false;
|
|
57
68
|
}
|
|
@@ -69,11 +80,42 @@ export class DeepMap extends Map {
|
|
|
69
80
|
}
|
|
70
81
|
return true;
|
|
71
82
|
}
|
|
72
|
-
|
|
83
|
+
take(keys) {
|
|
73
84
|
const value = this.get(keys);
|
|
74
85
|
this.delete(keys);
|
|
75
86
|
return value;
|
|
76
87
|
}
|
|
88
|
+
clone(keys) {
|
|
89
|
+
const node = this.#node(keys);
|
|
90
|
+
const map = new DeepMap();
|
|
91
|
+
if (node) {
|
|
92
|
+
for (const entry of this.#entries(node, [])) {
|
|
93
|
+
map.set(entry[0], entry[1]);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return map;
|
|
97
|
+
}
|
|
98
|
+
extract(keys) {
|
|
99
|
+
const node = this.#node(keys);
|
|
100
|
+
const map = new DeepMap();
|
|
101
|
+
if (node) {
|
|
102
|
+
for (const entry of this.#entries(node, [])) {
|
|
103
|
+
map.set(entry[0], entry[1]);
|
|
104
|
+
}
|
|
105
|
+
if (node.value !== undefined) {
|
|
106
|
+
map.set([], node.value);
|
|
107
|
+
}
|
|
108
|
+
node.children = new Map();
|
|
109
|
+
node.value = undefined;
|
|
110
|
+
}
|
|
111
|
+
return map;
|
|
112
|
+
}
|
|
113
|
+
append(keys, iterable) {
|
|
114
|
+
for (const entry of iterable) {
|
|
115
|
+
this.set((Array.isArray(keys) ? keys : [keys]).concat(entry[0]), entry[1]);
|
|
116
|
+
}
|
|
117
|
+
return this;
|
|
118
|
+
}
|
|
77
119
|
get size() {
|
|
78
120
|
let count = 0;
|
|
79
121
|
for (const {} of this.#entries(this.#rootNode, [])) {
|
|
@@ -23,8 +23,32 @@ export class Notifier {
|
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
unsubscribeAll() {
|
|
27
27
|
this.#subscribers = new Set();
|
|
28
|
+
this.#onceSubscribers = new WeakSet();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export class EventStore {
|
|
32
|
+
#eventEmitter;
|
|
33
|
+
#eventTuples = [];
|
|
34
|
+
constructor(eventEmitter) {
|
|
35
|
+
this.#eventEmitter = eventEmitter;
|
|
36
|
+
}
|
|
37
|
+
add(event, ...args) {
|
|
38
|
+
this.#eventTuples.push([event, ...args]);
|
|
39
|
+
}
|
|
40
|
+
emit() {
|
|
41
|
+
for (const eventTuple of this.#eventTuples) {
|
|
42
|
+
this.#eventEmitter.emit(...eventTuple);
|
|
43
|
+
}
|
|
44
|
+
this.#eventTuples = [];
|
|
45
|
+
}
|
|
46
|
+
consume(eventStore) {
|
|
47
|
+
this.#eventTuples.push(...eventStore.#eventTuples);
|
|
48
|
+
eventStore.#eventTuples = [];
|
|
49
|
+
}
|
|
50
|
+
clean() {
|
|
51
|
+
this.#eventTuples = [];
|
|
28
52
|
}
|
|
29
53
|
}
|
|
30
54
|
export class EventEmitter {
|
|
@@ -63,8 +87,17 @@ export class EventEmitter {
|
|
|
63
87
|
}
|
|
64
88
|
});
|
|
65
89
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
90
|
+
unsubscribeAll(event) {
|
|
91
|
+
if (event) {
|
|
92
|
+
this.#subscribers[event] = new Set();
|
|
93
|
+
this.#onceSubscribers[event] = new WeakSet();
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
this.#subscribers = {};
|
|
97
|
+
this.#onceSubscribers = {};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
makeStore() {
|
|
101
|
+
return new EventStore(this);
|
|
69
102
|
}
|
|
70
103
|
}
|
package/dist/types/deep-map.d.ts
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
export declare class DeepMap<K, V> extends Map<K[], V> {
|
|
2
2
|
#private;
|
|
3
|
+
constructor(iterable?: Iterable<readonly [K[], V]> | null);
|
|
3
4
|
clear(): void;
|
|
4
|
-
set(keys: K[], value: V): this;
|
|
5
|
-
get(keys: K[]): V | undefined;
|
|
6
|
-
has(keys: K[]): boolean;
|
|
7
|
-
delete(keys: K[]): boolean;
|
|
8
|
-
|
|
5
|
+
set(keys: K[] | K, value: V): this;
|
|
6
|
+
get(keys: K[] | K): V | undefined;
|
|
7
|
+
has(keys: K[] | K): boolean;
|
|
8
|
+
delete(keys: K[] | K): boolean;
|
|
9
|
+
take(keys: K[] | K): V | undefined;
|
|
10
|
+
clone(keys: K[] | K): DeepMap<K, V>;
|
|
11
|
+
extract(keys: K[] | K): DeepMap<K, V>;
|
|
12
|
+
append(keys: K[] | K, iterable: Iterable<readonly [K[], V]>): this;
|
|
9
13
|
get size(): number;
|
|
10
14
|
forEach(callbackfn: (value: V, key: K[], map: Map<K[], V>) => void): void;
|
|
11
15
|
[Symbol.iterator](): MapIterator<[K[], V]>;
|
|
@@ -13,7 +13,7 @@ export declare class Notifier<E extends unknown[]> implements Notifiable<E> {
|
|
|
13
13
|
}): this;
|
|
14
14
|
unsubscribe(subscriber: Subscriber<E>): boolean;
|
|
15
15
|
notify(...args: E): void;
|
|
16
|
-
|
|
16
|
+
unsubscribeAll(): void;
|
|
17
17
|
}
|
|
18
18
|
export type EventMap = Record<string, unknown[]>;
|
|
19
19
|
export interface Eventable<E extends EventMap> {
|
|
@@ -21,9 +21,18 @@ export interface Eventable<E extends EventMap> {
|
|
|
21
21
|
once<K extends keyof E>(event: K, subscriber: Subscriber<E[K]>): this;
|
|
22
22
|
off<K extends keyof E>(event: K, subscriber: Subscriber<E[K]>): boolean;
|
|
23
23
|
}
|
|
24
|
-
export type
|
|
24
|
+
export type EventTuple<E extends EventMap> = {
|
|
25
25
|
[K in keyof E]: [K, ...E[K]];
|
|
26
26
|
}[keyof E];
|
|
27
|
+
export declare class EventStore<E extends EventMap> {
|
|
28
|
+
#private;
|
|
29
|
+
constructor(eventEmitter: EventEmitter<E>);
|
|
30
|
+
add<K extends keyof E>(event: K, ...args: E[K]): void;
|
|
31
|
+
add(...eventTuple: EventTuple<E>): void;
|
|
32
|
+
emit(): void;
|
|
33
|
+
consume(eventStore: EventStore<E>): void;
|
|
34
|
+
clean(): void;
|
|
35
|
+
}
|
|
27
36
|
export declare class EventEmitter<E extends EventMap> implements Eventable<E> {
|
|
28
37
|
#private;
|
|
29
38
|
getSuscribers<K extends keyof E>(event: K): Set<Subscriber<E[K]>>;
|
|
@@ -31,6 +40,8 @@ export declare class EventEmitter<E extends EventMap> implements Eventable<E> {
|
|
|
31
40
|
once<K extends keyof E>(event: K, subscriber: Subscriber<E[K]>): this;
|
|
32
41
|
off<K extends keyof E>(event: K, subscriber: Subscriber<E[K]>): boolean;
|
|
33
42
|
emit<K extends keyof E>(event: K, ...args: E[K]): void;
|
|
34
|
-
emit(...
|
|
35
|
-
|
|
43
|
+
emit(...eventTuple: EventTuple<E>): void;
|
|
44
|
+
unsubscribeAll(): void;
|
|
45
|
+
unsubscribeAll<K extends keyof E>(event: K): void;
|
|
46
|
+
makeStore(): EventStore<E>;
|
|
36
47
|
}
|