@snippetify/book-reader
Version:
Book reader utilities
26 lines (20 loc) • 513 B
JavaScript
class EventManager {
constructor () {
this.listeners = []
}
static getInstance () {
return new EventManager()
}
subscribe (eventType, callback) {
return this.listeners.push({ eventType, callback }) - 1
}
unsubscribe (subscriptionId) {
this.listeners = this.listeners.filter((_, i) => i !== subscriptionId)
}
notify (eventType, data) {
this.listeners
.filter(v => v.eventType === eventType)
.forEach(v => v.callback(data))
}
}
module.exports = EventManager