UNPKG

@snippetify/book-reader

Version:
26 lines (20 loc) 513 B
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