1
0
mirror of https://github.com/dzeiocom/libs.git synced 2025-06-07 00:29:56 +00:00

fix: Listener not emitting 'all' event

Signed-off-by: Avior <f.bouillon@aptatio.com>
This commit is contained in:
Florian Bouillon 2022-11-17 10:41:25 +01:00
parent 9818037cc5
commit e11260207f
Signed by: Florian Bouillon
GPG Key ID: E05B3A94178D3A7C

View File

@ -69,7 +69,7 @@ export default abstract class Listener<
(this.handlers[event] as Array<T[typeof event]>).splice(index, 1) (this.handlers[event] as Array<T[typeof event]>).splice(index, 1)
} }
// @ts-ignore // @ts-expect-error Meta Listener
this.emit('removeListener', event, listener) this.emit('removeListener', event, listener)
return this return this
} }
@ -122,6 +122,10 @@ export default abstract class Listener<
* @param ev the variables to send * @param ev the variables to send
*/ */
public emit(event: keyof T, ...ev: Parameters<T[typeof event]>) { public emit(event: keyof T, ...ev: Parameters<T[typeof event]>) {
if (event !== 'all') {
// @ts-expect-error Meta Listener
this.emit('all', event, ...ev)
}
const listeners = this.listeners(event) const listeners = this.listeners(event)
listeners.forEach((fn) => fn(...ev)) listeners.forEach((fn) => fn(...ev))
return listeners.length > 0 return listeners.length > 0
@ -175,7 +179,7 @@ export default abstract class Listener<
} }
private internalAdd(push: boolean, event: keyof T, listener: T[typeof event]) { private internalAdd(push: boolean, event: keyof T, listener: T[typeof event]) {
// @ts-ignore // @ts-expect-error Meta Listener
this.emit('newListener', event, listener) this.emit('newListener', event, listener)
const item = this.handlers[event] const item = this.handlers[event]
if (!item) { if (!item) {
@ -189,7 +193,7 @@ export default abstract class Listener<
} }
const listenerCount = this.listenerCount(event) const listenerCount = this.listenerCount(event)
if (listenerCount > this.getMaxListeners()) { if (listenerCount > this.getMaxListeners()) {
console.warn(`MaxListenersExceededWarning: Possible EventEmitter memory leak detected. ${this.getMaxListeners()} userStateChanged listeners added to [FireAuth]. Use emitter.setMaxListeners() to increase limitWarning: more than are in the event ${event}! (${listenerCount})`) console.warn(`MaxListenersExceededWarning: Possible EventEmitter memory leak detected. ${this.getMaxListeners()} listeners recommended while there is ${listenerCount} listeners. Use emitter.setMaxListeners() to increase limit`)
} }
return this return this
} }