@irrelon/emitter 5.0.5 → 6.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/.eslintignore +2 -1
- package/.prettierignore +2 -1
- package/.prettierrc.yml +18 -1
- package/dist/cjs/src/Emitter.d.ts +23 -16
- package/dist/cjs/src/Emitter.js +51 -74
- package/dist/cjs/tests/Emitter.test.js +102 -52
- package/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/{mjs → esm}/src/Emitter.d.ts +23 -16
- package/dist/{mjs → esm}/src/Emitter.js +51 -63
- package/dist/{mjs → esm}/tests/Emitter.test.js +100 -50
- package/dist/esm/tsconfig-esm.tsbuildinfo +1 -0
- package/fixup.sh +1 -1
- package/package.json +68 -67
- package/readme.md +84 -20
- package/src/Emitter.ts +178 -106
- package/tests/Emitter.test.ts +210 -76
- package/tsconfig-cjs.json +1 -1
- package/tsconfig-esm.json +8 -0
- package/tsconfig.json +33 -5
- package/tsconfig-base.json +0 -36
- /package/dist/{mjs → esm}/package.json +0 -0
- /package/dist/{mjs → esm}/tests/Emitter.test.d.ts +0 -0
- /package/dist/{mjs → esm}/tsconfig.tsbuildinfo +0 -0
package/tests/Emitter.test.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import assert from "assert";
|
|
2
|
-
import {
|
|
2
|
+
import { Emitter, EmitterEventsInterface, EventListenerCallback, ListenerReturnFlag } from "../src/Emitter";
|
|
3
3
|
|
|
4
4
|
let expectedAssertions = 0;
|
|
5
5
|
let actualAssertions = 0;
|
|
@@ -33,14 +33,19 @@ describe("Emitter", () => {
|
|
|
33
33
|
it("Creates emitter instance by instantiation", () => {
|
|
34
34
|
const myClass = new Emitter();
|
|
35
35
|
|
|
36
|
-
myClass.on("moo", () => {
|
|
37
|
-
});
|
|
36
|
+
myClass.on("moo", () => {});
|
|
38
37
|
|
|
39
38
|
assert.strictEqual(myClass._eventListeners?.moo!["*"].length, 1, "Listener registered on event");
|
|
40
39
|
|
|
41
40
|
myClass.off("moo");
|
|
42
41
|
|
|
43
|
-
assert.strictEqual(
|
|
42
|
+
assert.strictEqual(
|
|
43
|
+
!myClass._eventListeners?.moo ||
|
|
44
|
+
!myClass._eventListeners.moo["*"] ||
|
|
45
|
+
myClass._eventListeners.moo["*"].length,
|
|
46
|
+
true,
|
|
47
|
+
"Listeners all removed from event"
|
|
48
|
+
);
|
|
44
49
|
});
|
|
45
50
|
|
|
46
51
|
it("Supports extending Emitter as a base class", () => {
|
|
@@ -52,8 +57,8 @@ describe("Emitter", () => {
|
|
|
52
57
|
testFuncCount++;
|
|
53
58
|
}
|
|
54
59
|
|
|
55
|
-
on
|
|
56
|
-
on
|
|
60
|
+
on(eventName: string, id: string, listener: EventListenerCallback): this;
|
|
61
|
+
on(eventName: string, listener: EventListenerCallback): this;
|
|
57
62
|
on (eventName: string, ...rest: any[]): this {
|
|
58
63
|
const restTypes = rest.map((arg) => typeof arg);
|
|
59
64
|
|
|
@@ -68,13 +73,13 @@ describe("Emitter", () => {
|
|
|
68
73
|
}
|
|
69
74
|
|
|
70
75
|
// @ts-ignore
|
|
71
|
-
emit (eventName: string, ...rest: any[])
|
|
76
|
+
emit (eventName: string, ...rest: any[]) {
|
|
72
77
|
return super.emitId(eventName, "^^noId", ...rest);
|
|
73
78
|
}
|
|
74
79
|
|
|
75
|
-
off
|
|
76
|
-
off
|
|
77
|
-
off
|
|
80
|
+
off(eventName: string, id: string, listener?: EventListenerCallback): this;
|
|
81
|
+
off(eventName: string, listener?: EventListenerCallback): this;
|
|
82
|
+
off(eventName: string): this;
|
|
78
83
|
off (eventName: string, ...rest: any[]) {
|
|
79
84
|
let id = rest[0];
|
|
80
85
|
let func = rest[1];
|
|
@@ -111,37 +116,61 @@ describe("Emitter", () => {
|
|
|
111
116
|
|
|
112
117
|
myClass.off("moo", "testId");
|
|
113
118
|
|
|
114
|
-
assert.strictEqual(
|
|
115
|
-
|
|
116
|
-
|
|
119
|
+
assert.strictEqual(
|
|
120
|
+
!myClass._eventListeners?.moo ||
|
|
121
|
+
!myClass._eventListeners?.moo["testId"] ||
|
|
122
|
+
(myClass._eventListeners?.moo["testId"].length as number) === 0,
|
|
123
|
+
true,
|
|
124
|
+
"Listeners all removed from event"
|
|
125
|
+
);
|
|
126
|
+
assert.strictEqual(
|
|
127
|
+
myClass._eventListeners?.moo &&
|
|
128
|
+
myClass._eventListeners?.moo["^^noId"] &&
|
|
129
|
+
myClass._eventListeners?.moo["^^noId"].length === 1,
|
|
130
|
+
true,
|
|
131
|
+
"Global listener still there"
|
|
132
|
+
);
|
|
133
|
+
assert.strictEqual(
|
|
134
|
+
!myClass._eventListeners?.moo ||
|
|
135
|
+
!myClass._eventListeners?.moo["*"] ||
|
|
136
|
+
myClass._eventListeners?.moo["*"].length === 0,
|
|
137
|
+
true,
|
|
138
|
+
"Global listener still there"
|
|
139
|
+
);
|
|
117
140
|
|
|
118
141
|
myClass.off("moo");
|
|
119
142
|
|
|
120
|
-
assert.strictEqual(
|
|
143
|
+
assert.strictEqual(
|
|
144
|
+
!myClass._eventListeners?.moo ||
|
|
145
|
+
!myClass._eventListeners?.moo["*"] ||
|
|
146
|
+
myClass._eventListeners?.moo["*"].length === 0,
|
|
147
|
+
true,
|
|
148
|
+
"Listeners all removed from event"
|
|
149
|
+
);
|
|
121
150
|
});
|
|
122
151
|
});
|
|
123
152
|
|
|
124
153
|
describe("emit()", () => {
|
|
125
154
|
it("Supports type safe usage", async () => {
|
|
126
155
|
interface MyEventsResponses {
|
|
127
|
-
post: () => void
|
|
128
|
-
person: (name: string, age: number, enabled: boolean) =>
|
|
156
|
+
post: () => Promise<void>;
|
|
157
|
+
person: (name: string, age: number, enabled: boolean) => Promise<string>;
|
|
129
158
|
house: (no: number, street: string, postcode: string, enabled: boolean) => void;
|
|
130
159
|
}
|
|
131
160
|
|
|
132
|
-
const emitter = new Emitter<
|
|
161
|
+
const emitter = new Emitter<MyEventsResponses>();
|
|
133
162
|
let listenerFiredCount = 0;
|
|
134
163
|
|
|
135
|
-
emitter.on("person",
|
|
136
|
-
return new Promise<
|
|
164
|
+
emitter.on("person", (name) => {
|
|
165
|
+
return new Promise<string>((resolve) => {
|
|
137
166
|
setTimeout(() => {
|
|
138
167
|
listenerFiredCount++;
|
|
139
|
-
resolve();
|
|
168
|
+
resolve(name);
|
|
140
169
|
}, 1000);
|
|
141
170
|
});
|
|
142
171
|
});
|
|
143
172
|
|
|
144
|
-
emitter.on("post",
|
|
173
|
+
emitter.on("post", () => {
|
|
145
174
|
return new Promise<void>((resolve) => {
|
|
146
175
|
setTimeout(() => {
|
|
147
176
|
listenerFiredCount++;
|
|
@@ -150,7 +179,7 @@ describe("Emitter", () => {
|
|
|
150
179
|
});
|
|
151
180
|
});
|
|
152
181
|
|
|
153
|
-
emitter.on("post",
|
|
182
|
+
emitter.on("post", () => {
|
|
154
183
|
return new Promise<void>((resolve) => {
|
|
155
184
|
setTimeout(() => {
|
|
156
185
|
listenerFiredCount++;
|
|
@@ -160,14 +189,22 @@ describe("Emitter", () => {
|
|
|
160
189
|
});
|
|
161
190
|
|
|
162
191
|
const time = new Date().getTime();
|
|
163
|
-
await emitter.emit("post");
|
|
192
|
+
await Promise.all(emitter.emit("post"));
|
|
164
193
|
const delta = new Date().getTime() - time;
|
|
165
194
|
|
|
166
195
|
assert.ok(delta > 900, `Delta was not correct, await may not have paused? Delta was: ${delta}`);
|
|
196
|
+
assert.ok(
|
|
197
|
+
listenerFiredCount === 2,
|
|
198
|
+
`listenerFiredCount was not correct, await may not have paused? listenerFiredCount was: ${listenerFiredCount}`
|
|
199
|
+
);
|
|
167
200
|
});
|
|
168
201
|
|
|
169
202
|
it("Supports awaiting async listeners", async () => {
|
|
170
|
-
|
|
203
|
+
interface TestEvents {
|
|
204
|
+
foo: () => Promise<void>;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
const emitter = new Emitter<EmitterEventsInterface<TestEvents>>();
|
|
171
208
|
let listenerFiredCount = 0;
|
|
172
209
|
|
|
173
210
|
emitter.on("foo", async () => {
|
|
@@ -189,26 +226,91 @@ describe("Emitter", () => {
|
|
|
189
226
|
});
|
|
190
227
|
|
|
191
228
|
const time = new Date().getTime();
|
|
192
|
-
await emitter.emit("foo");
|
|
229
|
+
await Promise.all(emitter.emit("foo"));
|
|
230
|
+
const delta = new Date().getTime() - time;
|
|
231
|
+
|
|
232
|
+
assert.ok(delta > 900, "Delta was not correct, await may not have paused?");
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
it("Supports awaiting async and non-async listener return data", async () => {
|
|
236
|
+
interface MyTestEvents {
|
|
237
|
+
foo: () => string | Promise<string>;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
const emitter = new Emitter<EmitterEventsInterface<MyTestEvents>>();
|
|
241
|
+
let listenerFiredCount = 0;
|
|
242
|
+
|
|
243
|
+
emitter.on("foo", () => {
|
|
244
|
+
return new Promise<string>((resolve) => {
|
|
245
|
+
setTimeout(() => {
|
|
246
|
+
listenerFiredCount++;
|
|
247
|
+
resolve("Foo1 Return Value");
|
|
248
|
+
}, 1000);
|
|
249
|
+
});
|
|
250
|
+
});
|
|
251
|
+
|
|
252
|
+
emitter.on("foo", () => {
|
|
253
|
+
return "Foo2 Return Value";
|
|
254
|
+
});
|
|
255
|
+
|
|
256
|
+
const time = new Date().getTime();
|
|
257
|
+
const results: string[] = await Promise.all(emitter.emit("foo"));
|
|
193
258
|
const delta = new Date().getTime() - time;
|
|
194
259
|
|
|
195
260
|
assert.ok(delta > 900, "Delta was not correct, await may not have paused?");
|
|
261
|
+
assert.ok(listenerFiredCount === 1, "listenerFiredCount was not correct, await may not have been used?");
|
|
262
|
+
assert.strictEqual(results[0], "Foo1 Return Value", "Return data for foo1 was not correct");
|
|
263
|
+
assert.strictEqual(results[1], "Foo2 Return Value", "Return data for foo2 was not correct");
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
it("Supports responding with a cancellation signal", async () => {
|
|
267
|
+
interface MyTestEvents {
|
|
268
|
+
foo: () => string | ListenerReturnFlag;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
const emitter = new Emitter<EmitterEventsInterface<MyTestEvents>>();
|
|
272
|
+
let listenerFiredCount = 0;
|
|
273
|
+
|
|
274
|
+
emitter.on("foo", () => {
|
|
275
|
+
listenerFiredCount++;
|
|
276
|
+
return "Foo1 Return Value";
|
|
277
|
+
});
|
|
278
|
+
|
|
279
|
+
emitter.on("foo", () => {
|
|
280
|
+
listenerFiredCount++;
|
|
281
|
+
|
|
282
|
+
// This listener will respond with a cancellation, this should terminate further listener calls
|
|
283
|
+
return ListenerReturnFlag.cancel;
|
|
284
|
+
});
|
|
285
|
+
|
|
286
|
+
emitter.on("foo", () => {
|
|
287
|
+
listenerFiredCount++;
|
|
288
|
+
return "Foo3 Return Value";
|
|
289
|
+
});
|
|
290
|
+
|
|
291
|
+
emitter.on("foo", () => {
|
|
292
|
+
listenerFiredCount++;
|
|
293
|
+
return "Foo4 Return Value";
|
|
294
|
+
});
|
|
295
|
+
|
|
296
|
+
const results = emitter.emit("foo");
|
|
297
|
+
|
|
298
|
+
assert.ok(listenerFiredCount === 2, "listenerFiredCount was not correct, await may not have been used?");
|
|
299
|
+
assert.strictEqual(results[0], "Foo1 Return Value", "Return data should be a cancel flag");
|
|
300
|
+
assert.strictEqual(results[1], ListenerReturnFlag.cancel, "Return data should be a cancel flag");
|
|
301
|
+
assert.ok(emitter.didCancel(results), "didCancel should detect a cancel flag");
|
|
196
302
|
});
|
|
197
303
|
});
|
|
198
304
|
|
|
199
305
|
describe("off()", () => {
|
|
200
306
|
it("Cancels all listeners (event)", () => {
|
|
201
307
|
const myClass = new Emitter();
|
|
202
|
-
const listener1 = () => {
|
|
203
|
-
};
|
|
204
|
-
const listener2 = () => {
|
|
205
|
-
};
|
|
308
|
+
const listener1 = () => {};
|
|
309
|
+
const listener2 = () => {};
|
|
206
310
|
|
|
207
|
-
myClass.on("moo", () => {
|
|
208
|
-
});
|
|
311
|
+
myClass.on("moo", () => {});
|
|
209
312
|
assert.strictEqual(myClass._eventListeners?.moo!["*"].length, 1, "Listeners registered on event");
|
|
210
|
-
myClass.on("moo", "testId", () => {
|
|
211
|
-
});
|
|
313
|
+
myClass.on("moo", "testId", () => {});
|
|
212
314
|
assert.strictEqual(myClass._eventListeners?.moo["testId"].length, 1, "Listeners registered on event");
|
|
213
315
|
myClass.on("moo", listener1);
|
|
214
316
|
assert.strictEqual(myClass._eventListeners?.moo["*"].length, 2, "Listeners registered on event");
|
|
@@ -217,21 +319,23 @@ describe("Emitter", () => {
|
|
|
217
319
|
|
|
218
320
|
myClass.off("moo");
|
|
219
321
|
|
|
220
|
-
assert.strictEqual(
|
|
322
|
+
assert.strictEqual(
|
|
323
|
+
!myClass._eventListeners?.moo ||
|
|
324
|
+
(myClass._eventListeners?.moo["*"].length === 0 &&
|
|
325
|
+
myClass._eventListeners?.moo["testId"].length === 0),
|
|
326
|
+
true,
|
|
327
|
+
"Listeners all removed from event"
|
|
328
|
+
);
|
|
221
329
|
});
|
|
222
330
|
|
|
223
331
|
it("Cancels id-based listeners (event, id)", () => {
|
|
224
332
|
const myClass = new Emitter();
|
|
225
|
-
const listener1 = () => {
|
|
226
|
-
};
|
|
227
|
-
const listener2 = () => {
|
|
228
|
-
};
|
|
333
|
+
const listener1 = () => {};
|
|
334
|
+
const listener2 = () => {};
|
|
229
335
|
|
|
230
|
-
myClass.on("moo", () => {
|
|
231
|
-
});
|
|
336
|
+
myClass.on("moo", () => {});
|
|
232
337
|
assert.strictEqual(myClass._eventListeners?.moo!["*"].length, 1, "Listeners registered on event");
|
|
233
|
-
myClass.on("moo", "testId", () => {
|
|
234
|
-
});
|
|
338
|
+
myClass.on("moo", "testId", () => {});
|
|
235
339
|
assert.strictEqual(myClass._eventListeners?.moo["testId"].length, 1, "Listeners registered on event");
|
|
236
340
|
myClass.on("moo", listener1);
|
|
237
341
|
assert.strictEqual(myClass._eventListeners?.moo["*"].length, 2, "Listeners registered on event");
|
|
@@ -240,22 +344,26 @@ describe("Emitter", () => {
|
|
|
240
344
|
|
|
241
345
|
myClass.off("moo", "testId");
|
|
242
346
|
|
|
243
|
-
assert.strictEqual(
|
|
244
|
-
|
|
347
|
+
assert.strictEqual(
|
|
348
|
+
myClass._eventListeners?.moo["*"].length === 2,
|
|
349
|
+
true,
|
|
350
|
+
"Listeners all removed from event"
|
|
351
|
+
);
|
|
352
|
+
assert.strictEqual(
|
|
353
|
+
!myClass._eventListeners?.moo["testId"] || myClass._eventListeners?.moo["testId"].length === 0,
|
|
354
|
+
true,
|
|
355
|
+
"Listeners all removed from event"
|
|
356
|
+
);
|
|
245
357
|
});
|
|
246
358
|
|
|
247
359
|
it("Cancels listener-based listeners (event, listener)", () => {
|
|
248
360
|
const myClass = new Emitter();
|
|
249
|
-
const listener1 = () => {
|
|
250
|
-
};
|
|
251
|
-
const listener2 = () => {
|
|
252
|
-
};
|
|
361
|
+
const listener1 = () => {};
|
|
362
|
+
const listener2 = () => {};
|
|
253
363
|
|
|
254
|
-
myClass.on("moo", () => {
|
|
255
|
-
});
|
|
364
|
+
myClass.on("moo", () => {});
|
|
256
365
|
assert.strictEqual(myClass._eventListeners?.moo!["*"].length, 1, "Listeners registered on event");
|
|
257
|
-
myClass.on("moo", "testId", () => {
|
|
258
|
-
});
|
|
366
|
+
myClass.on("moo", "testId", () => {});
|
|
259
367
|
assert.strictEqual(myClass._eventListeners?.moo["testId"].length, 1, "Listeners registered on event");
|
|
260
368
|
myClass.on("moo", listener1);
|
|
261
369
|
assert.strictEqual(myClass._eventListeners?.moo["*"].length, 2, "Listeners registered on event");
|
|
@@ -264,22 +372,26 @@ describe("Emitter", () => {
|
|
|
264
372
|
|
|
265
373
|
myClass.off("moo", listener1);
|
|
266
374
|
|
|
267
|
-
assert.strictEqual(
|
|
268
|
-
|
|
375
|
+
assert.strictEqual(
|
|
376
|
+
myClass._eventListeners?.moo["*"].length === 1,
|
|
377
|
+
true,
|
|
378
|
+
"Listeners all removed from event"
|
|
379
|
+
);
|
|
380
|
+
assert.strictEqual(
|
|
381
|
+
myClass._eventListeners?.moo["testId"].length === 2,
|
|
382
|
+
true,
|
|
383
|
+
"Listeners all removed from event"
|
|
384
|
+
);
|
|
269
385
|
});
|
|
270
386
|
|
|
271
387
|
it("Cancels id-based + listener-based listeners (event, id, listener)", () => {
|
|
272
388
|
const myClass = new Emitter();
|
|
273
|
-
const listener1 = () => {
|
|
274
|
-
};
|
|
275
|
-
const listener2 = () => {
|
|
276
|
-
};
|
|
389
|
+
const listener1 = () => {};
|
|
390
|
+
const listener2 = () => {};
|
|
277
391
|
|
|
278
|
-
myClass.on("moo", () => {
|
|
279
|
-
});
|
|
392
|
+
myClass.on("moo", () => {});
|
|
280
393
|
assert.strictEqual(myClass._eventListeners?.moo!["*"].length, 1, "Listeners registered on event");
|
|
281
|
-
myClass.on("moo", "testId", () => {
|
|
282
|
-
});
|
|
394
|
+
myClass.on("moo", "testId", () => {});
|
|
283
395
|
assert.strictEqual(myClass._eventListeners?.moo["testId"].length, 1, "Listeners registered on event");
|
|
284
396
|
myClass.on("moo", listener1);
|
|
285
397
|
assert.strictEqual(myClass._eventListeners?.moo["*"].length, 2, "Listeners registered on event");
|
|
@@ -288,15 +400,22 @@ describe("Emitter", () => {
|
|
|
288
400
|
|
|
289
401
|
myClass.off("moo", "testId", listener2);
|
|
290
402
|
|
|
291
|
-
assert.strictEqual(
|
|
292
|
-
|
|
403
|
+
assert.strictEqual(
|
|
404
|
+
myClass._eventListeners?.moo["*"].length === 2,
|
|
405
|
+
true,
|
|
406
|
+
"Listeners all removed from event"
|
|
407
|
+
);
|
|
408
|
+
assert.strictEqual(
|
|
409
|
+
myClass._eventListeners?.moo["testId"].length === 1,
|
|
410
|
+
true,
|
|
411
|
+
"Listeners all removed from event"
|
|
412
|
+
);
|
|
293
413
|
});
|
|
294
414
|
});
|
|
295
415
|
|
|
296
416
|
describe("emitStatic()", () => {
|
|
297
417
|
it("Static emitter will emit when a new listener is added", (resolve) => {
|
|
298
|
-
class MyClass extends Emitter {
|
|
299
|
-
}
|
|
418
|
+
class MyClass extends Emitter {}
|
|
300
419
|
|
|
301
420
|
expect(1);
|
|
302
421
|
|
|
@@ -312,8 +431,7 @@ describe("Emitter", () => {
|
|
|
312
431
|
|
|
313
432
|
describe("cancelStatic()", () => {
|
|
314
433
|
it("Removes static emitter", (resolve) => {
|
|
315
|
-
class MyClass extends Emitter {
|
|
316
|
-
}
|
|
434
|
+
class MyClass extends Emitter {}
|
|
317
435
|
|
|
318
436
|
expect(1);
|
|
319
437
|
|
|
@@ -338,8 +456,7 @@ describe("Emitter", () => {
|
|
|
338
456
|
|
|
339
457
|
describe("overwrite()", () => {
|
|
340
458
|
it("Only fires the last listener added, cancelling all other listeners before it", (resolve) => {
|
|
341
|
-
class MyClass extends Emitter {
|
|
342
|
-
}
|
|
459
|
+
class MyClass extends Emitter {}
|
|
343
460
|
|
|
344
461
|
expect(1);
|
|
345
462
|
|
|
@@ -364,8 +481,7 @@ describe("Emitter", () => {
|
|
|
364
481
|
});
|
|
365
482
|
|
|
366
483
|
it("Only fires the last listener added (with id), cancelling all other listeners before it", (resolve) => {
|
|
367
|
-
class MyClass extends Emitter {
|
|
368
|
-
}
|
|
484
|
+
class MyClass extends Emitter {}
|
|
369
485
|
|
|
370
486
|
expect(2);
|
|
371
487
|
|
|
@@ -424,12 +540,30 @@ describe("Emitter", () => {
|
|
|
424
540
|
|
|
425
541
|
myClass.off("moo", "testId");
|
|
426
542
|
|
|
427
|
-
assert.strictEqual(
|
|
428
|
-
|
|
543
|
+
assert.strictEqual(
|
|
544
|
+
!myClass._eventListeners?.moo ||
|
|
545
|
+
!myClass._eventListeners?.moo["testId"] ||
|
|
546
|
+
myClass._eventListeners?.moo["testId"].length,
|
|
547
|
+
true,
|
|
548
|
+
"Listeners all removed from event"
|
|
549
|
+
);
|
|
550
|
+
assert.strictEqual(
|
|
551
|
+
myClass._eventListeners?.moo &&
|
|
552
|
+
myClass._eventListeners?.moo["*"] &&
|
|
553
|
+
myClass._eventListeners?.moo["*"].length === 1,
|
|
554
|
+
true,
|
|
555
|
+
"Global listener still there"
|
|
556
|
+
);
|
|
429
557
|
|
|
430
558
|
myClass.off("moo");
|
|
431
559
|
|
|
432
|
-
assert.strictEqual(
|
|
560
|
+
assert.strictEqual(
|
|
561
|
+
!myClass._eventListeners?.moo ||
|
|
562
|
+
!myClass._eventListeners?.moo["*"] ||
|
|
563
|
+
myClass._eventListeners?.moo["*"].length === 0,
|
|
564
|
+
true,
|
|
565
|
+
"Listeners all removed from event"
|
|
566
|
+
);
|
|
433
567
|
});
|
|
434
568
|
});
|
|
435
|
-
});
|
|
569
|
+
});
|
package/tsconfig-cjs.json
CHANGED
package/tsconfig.json
CHANGED
|
@@ -1,8 +1,36 @@
|
|
|
1
1
|
{
|
|
2
|
-
"extends": "./tsconfig-base.json",
|
|
3
2
|
"compilerOptions": {
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"target": "
|
|
7
|
-
|
|
3
|
+
"downlevelIteration": true,
|
|
4
|
+
"baseUrl": ".",
|
|
5
|
+
"target": "es6",
|
|
6
|
+
"lib": [
|
|
7
|
+
"esnext"
|
|
8
|
+
],
|
|
9
|
+
"allowJs": false,
|
|
10
|
+
"skipLibCheck": false,
|
|
11
|
+
"strict": true,
|
|
12
|
+
"pretty": true,
|
|
13
|
+
"allowSyntheticDefaultImports": true,
|
|
14
|
+
"forceConsistentCasingInFileNames": true,
|
|
15
|
+
"noEmit": false,
|
|
16
|
+
"incremental": true,
|
|
17
|
+
"esModuleInterop": true,
|
|
18
|
+
"module": "es2022",
|
|
19
|
+
"moduleResolution": "node",
|
|
20
|
+
"resolveJsonModule": true,
|
|
21
|
+
"isolatedModules": true,
|
|
22
|
+
"declaration": true,
|
|
23
|
+
"inlineSourceMap": false,
|
|
24
|
+
"types": ["node", "jest"]
|
|
25
|
+
},
|
|
26
|
+
"include": [
|
|
27
|
+
"src/**/*.ts",
|
|
28
|
+
"tests/*.ts",
|
|
29
|
+
"tests/**/*.ts",
|
|
30
|
+
"src/**/*.tsx"
|
|
31
|
+
],
|
|
32
|
+
"exclude": [
|
|
33
|
+
"node_modules",
|
|
34
|
+
"dist"
|
|
35
|
+
]
|
|
8
36
|
}
|
package/tsconfig-base.json
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"downlevelIteration": true,
|
|
4
|
-
"baseUrl": ".",
|
|
5
|
-
"target": "es6",
|
|
6
|
-
"lib": [
|
|
7
|
-
"esnext"
|
|
8
|
-
],
|
|
9
|
-
"allowJs": false,
|
|
10
|
-
"skipLibCheck": false,
|
|
11
|
-
"strict": true,
|
|
12
|
-
"pretty": true,
|
|
13
|
-
"allowSyntheticDefaultImports": true,
|
|
14
|
-
"forceConsistentCasingInFileNames": true,
|
|
15
|
-
"noEmit": false,
|
|
16
|
-
"incremental": true,
|
|
17
|
-
"esModuleInterop": true,
|
|
18
|
-
"module": "es2022",
|
|
19
|
-
"moduleResolution": "node",
|
|
20
|
-
"resolveJsonModule": true,
|
|
21
|
-
"isolatedModules": true,
|
|
22
|
-
"declaration": true,
|
|
23
|
-
"inlineSourceMap": false,
|
|
24
|
-
"types": ["node", "jest"]
|
|
25
|
-
},
|
|
26
|
-
"include": [
|
|
27
|
-
"src/**/*.ts",
|
|
28
|
-
"tests/*.ts",
|
|
29
|
-
"tests/**/*.ts",
|
|
30
|
-
"src/**/*.tsx"
|
|
31
|
-
],
|
|
32
|
-
"exclude": [
|
|
33
|
-
"node_modules",
|
|
34
|
-
"dist"
|
|
35
|
-
]
|
|
36
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|