@signaldb/core 1.5.4 → 1.6.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/.vite/manifest.json +29 -28
- package/dist/Collection/createIndex.d.ts +1 -1
- package/dist/Collection/index.d.ts +1 -0
- package/dist/index.cjs.js +14 -12
- package/dist/index.cjs10.js +27 -10
- package/dist/index.cjs11.js +10 -3
- package/dist/index.cjs12.js +3 -136
- package/dist/index.cjs13.js +131 -61
- package/dist/index.cjs14.js +72 -5
- package/dist/index.cjs15.js +8 -41
- package/dist/index.cjs16.js +25 -11
- package/dist/index.cjs17.js +143 -23
- package/dist/index.cjs18.js +5 -262
- package/dist/index.cjs19.js +36 -63
- package/dist/index.cjs2.js +210 -732
- package/dist/index.cjs20.js +13 -85
- package/dist/index.cjs21.js +24 -8
- package/dist/index.cjs22.js +67 -24
- package/dist/index.cjs23.js +72 -131
- package/dist/index.cjs24.js +16 -5
- package/dist/index.cjs25.js +22 -11
- package/dist/index.cjs26.js +7 -27
- package/dist/index.cjs27.js +5 -40
- package/dist/index.cjs28.js +26 -26
- package/dist/index.cjs29.js +40 -7
- package/dist/index.cjs3.js +757 -136
- package/dist/index.cjs4.js +165 -62
- package/dist/index.cjs5.js +67 -3
- package/dist/index.cjs6.js +2 -2
- package/dist/index.cjs7.js +2 -2
- package/dist/index.cjs8.js +2 -2
- package/dist/index.cjs9.js +3 -27
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +14 -12
- package/dist/index10.mjs +27 -10
- package/dist/index11.mjs +10 -3
- package/dist/index12.mjs +3 -136
- package/dist/index13.mjs +131 -60
- package/dist/index14.mjs +71 -5
- package/dist/index15.mjs +8 -40
- package/dist/index16.mjs +25 -11
- package/dist/index17.mjs +143 -23
- package/dist/index18.mjs +5 -261
- package/dist/index19.mjs +36 -63
- package/dist/index2.mjs +210 -733
- package/dist/index20.mjs +13 -84
- package/dist/index21.mjs +24 -8
- package/dist/index22.mjs +66 -24
- package/dist/index23.mjs +71 -131
- package/dist/index24.mjs +16 -5
- package/dist/index25.mjs +22 -11
- package/dist/index26.mjs +7 -27
- package/dist/index27.mjs +5 -40
- package/dist/index28.mjs +26 -26
- package/dist/index29.mjs +40 -7
- package/dist/index3.mjs +757 -136
- package/dist/index4.mjs +165 -61
- package/dist/index5.mjs +66 -3
- package/dist/index6.mjs +2 -2
- package/dist/index7.mjs +2 -2
- package/dist/index8.mjs +2 -2
- package/dist/index9.mjs +3 -27
- package/dist/types/IndexProvider.d.ts +2 -0
- package/dist/utils/getMatchingKeys.d.ts +2 -2
- package/dist/utils/serializeValue.d.ts +1 -1
- package/package.json +1 -1
package/dist/.vite/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"src/AutoFetchCollection.ts": {
|
|
3
|
-
"file": "index.
|
|
3
|
+
"file": "index.cjs4.js",
|
|
4
4
|
"name": "AutoFetchCollection",
|
|
5
5
|
"src": "src/AutoFetchCollection.ts",
|
|
6
6
|
"imports": [
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
]
|
|
10
10
|
},
|
|
11
11
|
"src/Collection/Cursor.ts": {
|
|
12
|
-
"file": "index.
|
|
12
|
+
"file": "index.cjs2.js",
|
|
13
13
|
"name": "Collection/Cursor",
|
|
14
14
|
"src": "src/Collection/Cursor.ts",
|
|
15
15
|
"imports": [
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
]
|
|
20
20
|
},
|
|
21
21
|
"src/Collection/Observer.ts": {
|
|
22
|
-
"file": "index.
|
|
22
|
+
"file": "index.cjs17.js",
|
|
23
23
|
"name": "Collection/Observer",
|
|
24
24
|
"src": "src/Collection/Observer.ts",
|
|
25
25
|
"imports": [
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
]
|
|
29
29
|
},
|
|
30
30
|
"src/Collection/createIndex.ts": {
|
|
31
|
-
"file": "index.
|
|
31
|
+
"file": "index.cjs14.js",
|
|
32
32
|
"name": "Collection/createIndex",
|
|
33
33
|
"src": "src/Collection/createIndex.ts",
|
|
34
34
|
"imports": [
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
]
|
|
40
40
|
},
|
|
41
41
|
"src/Collection/getIndexInfo.ts": {
|
|
42
|
-
"file": "index.
|
|
42
|
+
"file": "index.cjs22.js",
|
|
43
43
|
"name": "Collection/getIndexInfo",
|
|
44
44
|
"src": "src/Collection/getIndexInfo.ts",
|
|
45
45
|
"imports": [
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
]
|
|
48
48
|
},
|
|
49
49
|
"src/Collection/index.ts": {
|
|
50
|
-
"file": "index.
|
|
50
|
+
"file": "index.cjs3.js",
|
|
51
51
|
"name": "Collection/index",
|
|
52
52
|
"src": "src/Collection/index.ts",
|
|
53
53
|
"imports": [
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
]
|
|
66
66
|
},
|
|
67
67
|
"src/ReplicatedCollection.ts": {
|
|
68
|
-
"file": "index.
|
|
68
|
+
"file": "index.cjs23.js",
|
|
69
69
|
"name": "ReplicatedCollection",
|
|
70
70
|
"src": "src/ReplicatedCollection.ts",
|
|
71
71
|
"imports": [
|
|
@@ -76,17 +76,17 @@
|
|
|
76
76
|
]
|
|
77
77
|
},
|
|
78
78
|
"src/createIndexProvider.ts": {
|
|
79
|
-
"file": "index.
|
|
79
|
+
"file": "index.cjs6.js",
|
|
80
80
|
"name": "createIndexProvider",
|
|
81
81
|
"src": "src/createIndexProvider.ts"
|
|
82
82
|
},
|
|
83
83
|
"src/createMemoryAdapter.ts": {
|
|
84
|
-
"file": "index.
|
|
84
|
+
"file": "index.cjs7.js",
|
|
85
85
|
"name": "createMemoryAdapter",
|
|
86
86
|
"src": "src/createMemoryAdapter.ts"
|
|
87
87
|
},
|
|
88
88
|
"src/createReactivityAdapter.ts": {
|
|
89
|
-
"file": "index.
|
|
89
|
+
"file": "index.cjs9.js",
|
|
90
90
|
"name": "createReactivityAdapter",
|
|
91
91
|
"src": "src/createReactivityAdapter.ts"
|
|
92
92
|
},
|
|
@@ -96,6 +96,7 @@
|
|
|
96
96
|
"src": "src/index.ts",
|
|
97
97
|
"isEntry": true,
|
|
98
98
|
"imports": [
|
|
99
|
+
"src/Collection/Cursor.ts",
|
|
99
100
|
"src/Collection/index.ts",
|
|
100
101
|
"src/AutoFetchCollection.ts",
|
|
101
102
|
"src/persistence/combinePersistenceAdapters.ts",
|
|
@@ -111,7 +112,7 @@
|
|
|
111
112
|
]
|
|
112
113
|
},
|
|
113
114
|
"src/persistence/combinePersistenceAdapters.ts": {
|
|
114
|
-
"file": "index.
|
|
115
|
+
"file": "index.cjs5.js",
|
|
115
116
|
"name": "persistence/combinePersistenceAdapters",
|
|
116
117
|
"src": "src/persistence/combinePersistenceAdapters.ts",
|
|
117
118
|
"imports": [
|
|
@@ -119,32 +120,32 @@
|
|
|
119
120
|
]
|
|
120
121
|
},
|
|
121
122
|
"src/persistence/createPersistenceAdapter.ts": {
|
|
122
|
-
"file": "index.
|
|
123
|
+
"file": "index.cjs8.js",
|
|
123
124
|
"name": "persistence/createPersistenceAdapter",
|
|
124
125
|
"src": "src/persistence/createPersistenceAdapter.ts"
|
|
125
126
|
},
|
|
126
127
|
"src/utils/EventEmitter.ts": {
|
|
127
|
-
"file": "index.
|
|
128
|
+
"file": "index.cjs13.js",
|
|
128
129
|
"name": "utils/EventEmitter",
|
|
129
130
|
"src": "src/utils/EventEmitter.ts"
|
|
130
131
|
},
|
|
131
132
|
"src/utils/createSignal.ts": {
|
|
132
|
-
"file": "index.
|
|
133
|
+
"file": "index.cjs21.js",
|
|
133
134
|
"name": "utils/createSignal",
|
|
134
135
|
"src": "src/utils/createSignal.ts"
|
|
135
136
|
},
|
|
136
137
|
"src/utils/deepClone.ts": {
|
|
137
|
-
"file": "index.
|
|
138
|
+
"file": "index.cjs19.js",
|
|
138
139
|
"name": "utils/deepClone",
|
|
139
140
|
"src": "src/utils/deepClone.ts"
|
|
140
141
|
},
|
|
141
142
|
"src/utils/get.ts": {
|
|
142
|
-
"file": "index.
|
|
143
|
+
"file": "index.cjs24.js",
|
|
143
144
|
"name": "utils/get",
|
|
144
145
|
"src": "src/utils/get.ts"
|
|
145
146
|
},
|
|
146
147
|
"src/utils/getMatchingKeys.ts": {
|
|
147
|
-
"file": "index.
|
|
148
|
+
"file": "index.cjs28.js",
|
|
148
149
|
"name": "utils/getMatchingKeys",
|
|
149
150
|
"src": "src/utils/getMatchingKeys.ts",
|
|
150
151
|
"imports": [
|
|
@@ -153,27 +154,27 @@
|
|
|
153
154
|
]
|
|
154
155
|
},
|
|
155
156
|
"src/utils/intersection.ts": {
|
|
156
|
-
"file": "index.
|
|
157
|
+
"file": "index.cjs27.js",
|
|
157
158
|
"name": "utils/intersection",
|
|
158
159
|
"src": "src/utils/intersection.ts"
|
|
159
160
|
},
|
|
160
161
|
"src/utils/isEqual.ts": {
|
|
161
|
-
"file": "index.
|
|
162
|
+
"file": "index.cjs10.js",
|
|
162
163
|
"name": "utils/isEqual",
|
|
163
164
|
"src": "src/utils/isEqual.ts"
|
|
164
165
|
},
|
|
165
166
|
"src/utils/isFieldExpression.ts": {
|
|
166
|
-
"file": "index.
|
|
167
|
+
"file": "index.cjs29.js",
|
|
167
168
|
"name": "utils/isFieldExpression",
|
|
168
169
|
"src": "src/utils/isFieldExpression.ts"
|
|
169
170
|
},
|
|
170
171
|
"src/utils/match.ts": {
|
|
171
|
-
"file": "index.
|
|
172
|
+
"file": "index.cjs18.js",
|
|
172
173
|
"name": "utils/match",
|
|
173
174
|
"src": "src/utils/match.ts"
|
|
174
175
|
},
|
|
175
176
|
"src/utils/modify.ts": {
|
|
176
|
-
"file": "index.
|
|
177
|
+
"file": "index.cjs11.js",
|
|
177
178
|
"name": "utils/modify",
|
|
178
179
|
"src": "src/utils/modify.ts",
|
|
179
180
|
"imports": [
|
|
@@ -181,7 +182,7 @@
|
|
|
181
182
|
]
|
|
182
183
|
},
|
|
183
184
|
"src/utils/project.ts": {
|
|
184
|
-
"file": "index.
|
|
185
|
+
"file": "index.cjs16.js",
|
|
185
186
|
"name": "utils/project",
|
|
186
187
|
"src": "src/utils/project.ts",
|
|
187
188
|
"imports": [
|
|
@@ -190,22 +191,22 @@
|
|
|
190
191
|
]
|
|
191
192
|
},
|
|
192
193
|
"src/utils/randomId.ts": {
|
|
193
|
-
"file": "index.
|
|
194
|
+
"file": "index.cjs12.js",
|
|
194
195
|
"name": "utils/randomId",
|
|
195
196
|
"src": "src/utils/randomId.ts"
|
|
196
197
|
},
|
|
197
198
|
"src/utils/serializeValue.ts": {
|
|
198
|
-
"file": "index.
|
|
199
|
+
"file": "index.cjs20.js",
|
|
199
200
|
"name": "utils/serializeValue",
|
|
200
201
|
"src": "src/utils/serializeValue.ts"
|
|
201
202
|
},
|
|
202
203
|
"src/utils/set.ts": {
|
|
203
|
-
"file": "index.
|
|
204
|
+
"file": "index.cjs25.js",
|
|
204
205
|
"name": "utils/set",
|
|
205
206
|
"src": "src/utils/set.ts"
|
|
206
207
|
},
|
|
207
208
|
"src/utils/sortItems.ts": {
|
|
208
|
-
"file": "index.
|
|
209
|
+
"file": "index.cjs15.js",
|
|
209
210
|
"name": "utils/sortItems",
|
|
210
211
|
"src": "src/utils/sortItems.ts",
|
|
211
212
|
"imports": [
|
|
@@ -213,7 +214,7 @@
|
|
|
213
214
|
]
|
|
214
215
|
},
|
|
215
216
|
"src/utils/uniqueBy.ts": {
|
|
216
|
-
"file": "index.
|
|
217
|
+
"file": "index.cjs26.js",
|
|
217
218
|
"name": "utils/uniqueBy",
|
|
218
219
|
"src": "src/utils/uniqueBy.ts"
|
|
219
220
|
}
|
|
@@ -6,7 +6,7 @@ import type { BaseItem } from './types';
|
|
|
6
6
|
* @param index the external map to use for the index
|
|
7
7
|
* @returns an index provider to pass to the `indices` option of the collection constructor
|
|
8
8
|
*/
|
|
9
|
-
export declare function createExternalIndex<T extends BaseItem<I> = BaseItem, I = any>(field: string, index: Map<string, Set<number>>): IndexProvider<T, I>;
|
|
9
|
+
export declare function createExternalIndex<T extends BaseItem<I> = BaseItem, I = any>(field: string, index: Map<string | undefined | null, Set<number>>): IndexProvider<T, I>;
|
|
10
10
|
/**
|
|
11
11
|
* creates an index for a specific field
|
|
12
12
|
* @param field name of the field
|
|
@@ -20,6 +20,7 @@ export interface CollectionOptions<T extends BaseItem<I>, I, U = T> {
|
|
|
20
20
|
indices?: IndexProvider<T, I>[];
|
|
21
21
|
enableDebugMode?: boolean;
|
|
22
22
|
fieldTracking?: boolean;
|
|
23
|
+
primaryKeyGenerator?: (item: Omit<T, 'id'>) => I;
|
|
23
24
|
}
|
|
24
25
|
interface CollectionEvents<T extends BaseItem, U = T> {
|
|
25
26
|
'added': (item: T) => void;
|
package/dist/index.cjs.js
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
3
|
+
const Cursor = require("./index.cjs2.js");
|
|
4
|
+
const index = require("./index.cjs3.js");
|
|
5
|
+
const AutoFetchCollection = require("./index.cjs4.js");
|
|
6
|
+
const combinePersistenceAdapters = require("./index.cjs5.js");
|
|
7
|
+
const createIndexProvider = require("./index.cjs6.js");
|
|
8
|
+
const createMemoryAdapter = require("./index.cjs7.js");
|
|
9
|
+
const createPersistenceAdapter = require("./index.cjs8.js");
|
|
10
|
+
const createReactivityAdapter = require("./index.cjs9.js");
|
|
11
|
+
const isEqual = require("./index.cjs10.js");
|
|
12
|
+
const modify = require("./index.cjs11.js");
|
|
13
|
+
const randomId = require("./index.cjs12.js");
|
|
14
|
+
const EventEmitter = require("./index.cjs13.js");
|
|
15
|
+
const createIndex = require("./index.cjs14.js");
|
|
16
|
+
exports.Cursor = Cursor.default;
|
|
15
17
|
exports.Collection = index.default;
|
|
16
18
|
exports.AutoFetchCollection = AutoFetchCollection;
|
|
17
19
|
exports.combinePersistenceAdapters = combinePersistenceAdapters.default;
|
package/dist/index.cjs10.js
CHANGED
|
@@ -1,12 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
function isEqual(a, b) {
|
|
3
|
+
if (Object.is(a, b))
|
|
4
|
+
return true;
|
|
5
|
+
if (a instanceof RegExp && b instanceof RegExp)
|
|
6
|
+
return a.toString() === b.toString();
|
|
7
|
+
if (a instanceof Date && b instanceof Date)
|
|
8
|
+
return a.getTime() === b.getTime();
|
|
9
|
+
if (typeof a !== "object")
|
|
10
|
+
return false;
|
|
11
|
+
if (typeof b !== "object")
|
|
12
|
+
return false;
|
|
13
|
+
if (a === null)
|
|
14
|
+
return false;
|
|
15
|
+
if (b === null)
|
|
16
|
+
return false;
|
|
17
|
+
const aKeys = Object.keys(a);
|
|
18
|
+
const bKeys = Object.keys(b);
|
|
19
|
+
if (aKeys.length !== bKeys.length)
|
|
20
|
+
return false;
|
|
21
|
+
for (const key of aKeys) {
|
|
22
|
+
if (!bKeys.includes(key))
|
|
23
|
+
return false;
|
|
24
|
+
if (!isEqual(a[key], b[key]))
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
return true;
|
|
11
28
|
}
|
|
12
|
-
module.exports =
|
|
29
|
+
module.exports = isEqual;
|
package/dist/index.cjs11.js
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
const mingo = require("mingo");
|
|
3
|
+
const deepClone = require("./index.cjs19.js");
|
|
4
|
+
function modify(item, modifier) {
|
|
5
|
+
const hasOperators = Object.keys(modifier).some((key) => key.startsWith("$"));
|
|
6
|
+
if (!hasOperators)
|
|
7
|
+
return modifier;
|
|
8
|
+
const clonedItem = deepClone.default(item);
|
|
9
|
+
mingo.update(clonedItem, modifier);
|
|
10
|
+
return clonedItem;
|
|
4
11
|
}
|
|
5
|
-
module.exports =
|
|
12
|
+
module.exports = modify;
|
package/dist/index.cjs12.js
CHANGED
|
@@ -1,138 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
-
class EventEmitter {
|
|
6
|
-
constructor() {
|
|
7
|
-
__publicField(this, "_maxListeners", 100);
|
|
8
|
-
/**
|
|
9
|
-
* We store a set of the listeners for each event.
|
|
10
|
-
*/
|
|
11
|
-
__publicField(this, "_listenerStore", /* @__PURE__ */ new Map());
|
|
12
|
-
}
|
|
13
|
-
setMaxListeners(max) {
|
|
14
|
-
this._maxListeners = max;
|
|
15
|
-
return this;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Subscribe to an event with a listener function.
|
|
19
|
-
* @param eventName The event name (key of E).
|
|
20
|
-
* @param listener A function that receives the emitted arguments.
|
|
21
|
-
* @returns The emitter instance (for chaining).
|
|
22
|
-
*/
|
|
23
|
-
on(eventName, listener) {
|
|
24
|
-
let listenersSet = this._listenerStore.get(eventName);
|
|
25
|
-
if (!listenersSet) {
|
|
26
|
-
listenersSet = /* @__PURE__ */ new Set();
|
|
27
|
-
this._listenerStore.set(eventName, listenersSet);
|
|
28
|
-
}
|
|
29
|
-
listenersSet.add(listener);
|
|
30
|
-
if (listenersSet.size > this._maxListeners) {
|
|
31
|
-
console.warn(`Possible EventEmitter memory leak detected. ${listenersSet.size} ${String(eventName)} listeners added. Use emitter.setMaxListeners() to increase limit.`);
|
|
32
|
-
}
|
|
33
|
-
return this;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Subscribe to an event with a listener function.
|
|
37
|
-
* @param eventName The event name (key of E).
|
|
38
|
-
* @param listener A function that receives the emitted arguments.
|
|
39
|
-
* @returns The emitter instance (for chaining).
|
|
40
|
-
*/
|
|
41
|
-
addListener(eventName, listener) {
|
|
42
|
-
return this.on(eventName, listener);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Subscribe to an event, handling it only once. Automatically removes
|
|
46
|
-
* the listener after it fires the first time.
|
|
47
|
-
* @param eventName The event name (key of E).
|
|
48
|
-
* @param listener A function that receives the emitted arguments.
|
|
49
|
-
* @returns The emitter instance (for chaining).
|
|
50
|
-
*/
|
|
51
|
-
once(eventName, listener) {
|
|
52
|
-
const onceWrapper = (...args) => {
|
|
53
|
-
listener(...args);
|
|
54
|
-
this.off(eventName, onceWrapper);
|
|
55
|
-
};
|
|
56
|
-
return this.on(eventName, onceWrapper);
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Unsubscribe a previously subscribed listener.
|
|
60
|
-
* @param eventName The event name (key of E).
|
|
61
|
-
* @param listener The original function passed to `on` or `once`.
|
|
62
|
-
* @returns The emitter instance (for chaining).
|
|
63
|
-
*/
|
|
64
|
-
off(eventName, listener) {
|
|
65
|
-
const listenersSet = this._listenerStore.get(eventName);
|
|
66
|
-
if (!listenersSet)
|
|
67
|
-
return this;
|
|
68
|
-
listenersSet.delete(listener);
|
|
69
|
-
if (listenersSet.size === 0) {
|
|
70
|
-
this._listenerStore.delete(eventName);
|
|
71
|
-
}
|
|
72
|
-
return this;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Unsubscribe a previously subscribed listener.
|
|
76
|
-
* @param eventName The event name (key of E).
|
|
77
|
-
* @param listener The original function passed to `on` or `once`.
|
|
78
|
-
* @returns The emitter instance (for chaining).
|
|
79
|
-
*/
|
|
80
|
-
removeListener(eventName, listener) {
|
|
81
|
-
return this.off(eventName, listener);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Emit (dispatch) an event with a variable number of arguments.
|
|
85
|
-
* @param eventName The event name (key of E).
|
|
86
|
-
* @param args The arguments to pass to subscribed listeners.
|
|
87
|
-
*/
|
|
88
|
-
emit(eventName, ...args) {
|
|
89
|
-
this.listeners(eventName).forEach((listener) => {
|
|
90
|
-
listener(...args);
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Returns the array of listener functions currently registered for a given event.
|
|
95
|
-
* @param eventName The event name (key of E).
|
|
96
|
-
* @returns An array of listener functions.
|
|
97
|
-
*/
|
|
98
|
-
listeners(eventName) {
|
|
99
|
-
const listenersSet = this._listenerStore.get(eventName);
|
|
100
|
-
if (!listenersSet)
|
|
101
|
-
return [];
|
|
102
|
-
return [...listenersSet.values()];
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Returns the number of listeners for a given event.
|
|
106
|
-
* @param eventName The event name (key of E).
|
|
107
|
-
* @returns The number of listeners.
|
|
108
|
-
*/
|
|
109
|
-
listenerCount(eventName) {
|
|
110
|
-
const listenersSet = this._listenerStore.get(eventName);
|
|
111
|
-
return listenersSet ? listenersSet.size : 0;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Removes all listeners for a given event, or all events if none is specified.
|
|
115
|
-
* @param eventName Optional. If omitted, clears all events’ listeners.
|
|
116
|
-
* @returns The emitter instance (for chaining).
|
|
117
|
-
*/
|
|
118
|
-
removeAllListeners(eventName) {
|
|
119
|
-
if (eventName === void 0) {
|
|
120
|
-
for (const [eventName_, listenersSet] of this._listenerStore.entries()) {
|
|
121
|
-
for (const listener of listenersSet.values()) {
|
|
122
|
-
this.off(eventName_, listener);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
this._listenerStore.clear();
|
|
126
|
-
} else {
|
|
127
|
-
const listenersSet = this._listenerStore.get(eventName);
|
|
128
|
-
if (listenersSet) {
|
|
129
|
-
for (const listener of listenersSet.values()) {
|
|
130
|
-
this.off(eventName, listener);
|
|
131
|
-
}
|
|
132
|
-
this._listenerStore.delete(eventName);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return this;
|
|
136
|
-
}
|
|
2
|
+
function randomId() {
|
|
3
|
+
return Math.floor(Math.random() * 1e17).toString(16);
|
|
137
4
|
}
|
|
138
|
-
module.exports =
|
|
5
|
+
module.exports = randomId;
|
package/dist/index.cjs13.js
CHANGED
|
@@ -1,68 +1,138 @@
|
|
|
1
1
|
"use strict";
|
|
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
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
class EventEmitter {
|
|
6
|
+
constructor() {
|
|
7
|
+
__publicField(this, "_maxListeners", 100);
|
|
8
|
+
/**
|
|
9
|
+
* We store a set of the listeners for each event.
|
|
10
|
+
*/
|
|
11
|
+
__publicField(this, "_listenerStore", /* @__PURE__ */ new Map());
|
|
12
|
+
}
|
|
13
|
+
setMaxListeners(max) {
|
|
14
|
+
this._maxListeners = max;
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Subscribe to an event with a listener function.
|
|
19
|
+
* @param eventName The event name (key of E).
|
|
20
|
+
* @param listener A function that receives the emitted arguments.
|
|
21
|
+
* @returns The emitter instance (for chaining).
|
|
22
|
+
*/
|
|
23
|
+
on(eventName, listener) {
|
|
24
|
+
let listenersSet = this._listenerStore.get(eventName);
|
|
25
|
+
if (!listenersSet) {
|
|
26
|
+
listenersSet = /* @__PURE__ */ new Set();
|
|
27
|
+
this._listenerStore.set(eventName, listenersSet);
|
|
28
|
+
}
|
|
29
|
+
listenersSet.add(listener);
|
|
30
|
+
if (listenersSet.size > this._maxListeners) {
|
|
31
|
+
console.warn(`Possible EventEmitter memory leak detected. ${listenersSet.size} ${String(eventName)} listeners added. Use emitter.setMaxListeners() to increase limit.`);
|
|
32
|
+
}
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Subscribe to an event with a listener function.
|
|
37
|
+
* @param eventName The event name (key of E).
|
|
38
|
+
* @param listener A function that receives the emitted arguments.
|
|
39
|
+
* @returns The emitter instance (for chaining).
|
|
40
|
+
*/
|
|
41
|
+
addListener(eventName, listener) {
|
|
42
|
+
return this.on(eventName, listener);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Subscribe to an event, handling it only once. Automatically removes
|
|
46
|
+
* the listener after it fires the first time.
|
|
47
|
+
* @param eventName The event name (key of E).
|
|
48
|
+
* @param listener A function that receives the emitted arguments.
|
|
49
|
+
* @returns The emitter instance (for chaining).
|
|
50
|
+
*/
|
|
51
|
+
once(eventName, listener) {
|
|
52
|
+
const onceWrapper = (...args) => {
|
|
53
|
+
listener(...args);
|
|
54
|
+
this.off(eventName, onceWrapper);
|
|
55
|
+
};
|
|
56
|
+
return this.on(eventName, onceWrapper);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Unsubscribe a previously subscribed listener.
|
|
60
|
+
* @param eventName The event name (key of E).
|
|
61
|
+
* @param listener The original function passed to `on` or `once`.
|
|
62
|
+
* @returns The emitter instance (for chaining).
|
|
63
|
+
*/
|
|
64
|
+
off(eventName, listener) {
|
|
65
|
+
const listenersSet = this._listenerStore.get(eventName);
|
|
66
|
+
if (!listenersSet)
|
|
67
|
+
return this;
|
|
68
|
+
listenersSet.delete(listener);
|
|
69
|
+
if (listenersSet.size === 0) {
|
|
70
|
+
this._listenerStore.delete(eventName);
|
|
71
|
+
}
|
|
72
|
+
return this;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Unsubscribe a previously subscribed listener.
|
|
76
|
+
* @param eventName The event name (key of E).
|
|
77
|
+
* @param listener The original function passed to `on` or `once`.
|
|
78
|
+
* @returns The emitter instance (for chaining).
|
|
79
|
+
*/
|
|
80
|
+
removeListener(eventName, listener) {
|
|
81
|
+
return this.off(eventName, listener);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Emit (dispatch) an event with a variable number of arguments.
|
|
85
|
+
* @param eventName The event name (key of E).
|
|
86
|
+
* @param args The arguments to pass to subscribed listeners.
|
|
87
|
+
*/
|
|
88
|
+
emit(eventName, ...args) {
|
|
89
|
+
this.listeners(eventName).forEach((listener) => {
|
|
90
|
+
listener(...args);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Returns the array of listener functions currently registered for a given event.
|
|
95
|
+
* @param eventName The event name (key of E).
|
|
96
|
+
* @returns An array of listener functions.
|
|
97
|
+
*/
|
|
98
|
+
listeners(eventName) {
|
|
99
|
+
const listenersSet = this._listenerStore.get(eventName);
|
|
100
|
+
if (!listenersSet)
|
|
101
|
+
return [];
|
|
102
|
+
return [...listenersSet.values()];
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Returns the number of listeners for a given event.
|
|
106
|
+
* @param eventName The event name (key of E).
|
|
107
|
+
* @returns The number of listeners.
|
|
108
|
+
*/
|
|
109
|
+
listenerCount(eventName) {
|
|
110
|
+
const listenersSet = this._listenerStore.get(eventName);
|
|
111
|
+
return listenersSet ? listenersSet.size : 0;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Removes all listeners for a given event, or all events if none is specified.
|
|
115
|
+
* @param eventName Optional. If omitted, clears all events’ listeners.
|
|
116
|
+
* @returns The emitter instance (for chaining).
|
|
117
|
+
*/
|
|
118
|
+
removeAllListeners(eventName) {
|
|
119
|
+
if (eventName === void 0) {
|
|
120
|
+
for (const [eventName_, listenersSet] of this._listenerStore.entries()) {
|
|
121
|
+
for (const listener of listenersSet.values()) {
|
|
122
|
+
this.off(eventName_, listener);
|
|
28
123
|
}
|
|
29
124
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
excludeSet.add(pos);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
125
|
+
this._listenerStore.clear();
|
|
126
|
+
} else {
|
|
127
|
+
const listenersSet = this._listenerStore.get(eventName);
|
|
128
|
+
if (listenersSet) {
|
|
129
|
+
for (const listener of listenersSet.values()) {
|
|
130
|
+
this.off(eventName, listener);
|
|
39
131
|
}
|
|
40
|
-
|
|
132
|
+
this._listenerStore.delete(eventName);
|
|
41
133
|
}
|
|
42
|
-
return {
|
|
43
|
-
matched: true,
|
|
44
|
-
positions: includedPositions,
|
|
45
|
-
fields: [field]
|
|
46
|
-
};
|
|
47
|
-
},
|
|
48
|
-
rebuild() {
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
function createIndex(field) {
|
|
53
|
-
const index = /* @__PURE__ */ new Map();
|
|
54
|
-
return {
|
|
55
|
-
...createExternalIndex(field, index),
|
|
56
|
-
rebuild(items) {
|
|
57
|
-
index.clear();
|
|
58
|
-
items.forEach((item, i) => {
|
|
59
|
-
const value = serializeValue(get(item, field));
|
|
60
|
-
const current = index.get(value) || /* @__PURE__ */ new Set();
|
|
61
|
-
current.add(i);
|
|
62
|
-
index.set(value, current);
|
|
63
|
-
});
|
|
64
134
|
}
|
|
65
|
-
|
|
135
|
+
return this;
|
|
136
|
+
}
|
|
66
137
|
}
|
|
67
|
-
exports
|
|
68
|
-
exports.default = createIndex;
|
|
138
|
+
module.exports = EventEmitter;
|