27 lines
576 B
TypeScript
27 lines
576 B
TypeScript
import { EventEmitter } from 'events'
|
|
import IEventManager from './Interfaces/IEventManager'
|
|
|
|
let instance: EventManager | null = null
|
|
|
|
class EventManager implements IEventManager {
|
|
eventEmitter: EventEmitter
|
|
|
|
constructor () {
|
|
if (!instance) instance = this
|
|
|
|
this.eventEmitter = new EventEmitter()
|
|
|
|
return instance
|
|
}
|
|
|
|
listen = (eventName: string, callback: any) => {
|
|
this.eventEmitter.addListener(eventName, callback)
|
|
}
|
|
|
|
emit = (eventName: string, detail: any) => {
|
|
this.eventEmitter.emit(eventName, detail)
|
|
}
|
|
}
|
|
|
|
export default EventManager
|