Skip to content

Commit

Permalink
eventemitter.js
Browse files Browse the repository at this point in the history
a cool event emitter
  • Loading branch information
davutozgursukuti authored Feb 16, 2023
0 parents commit 540d3ec
Showing 1 changed file with 56 additions and 0 deletions.
56 changes: 56 additions & 0 deletions Classes/eventemitter.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import EventEmitter from "node:events"



class ExtendedEventEmitter extends EventEmitter{
constructor(){
super()
this.emittedEventNames()
this.eventNames()
}
/**
*
* @returns {any[]}
*/
emittedEventNames(){
return []
}
/**
*
* @returns {any[]}
*/
emittedEvents(){
return []
}
/**
*
* @param {string | symbol} eventName
* @returns
*/
hasListener(eventName){
return super.eventNames().some((e) => e === eventName)
}
/**
*
* @param {string | symbol} eventName
* @returns
*/
emit(eventName, ...args){
this.emittedEventNames.push(event)
this.emittedEvents.push({
eventName,
args: args
})
return super.emit(eventName, ...args)
}
/**
*
* @param {string | symbol} eventName
* @returns
*/
hasEmit(eventName){
return this.emittedEventNames.some(eName => eName === eventName)
}
}

export default ExtendedEventEmitter

0 comments on commit 540d3ec

Please sign in to comment.