forked from cybrespace/pinafore
		
	
		
			
				
	
	
		
			17 lines
		
	
	
	
		
			435 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
	
		
			435 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import EventEmitter from 'events'
 | 
						|
 | 
						|
const eventBus = new EventEmitter()
 | 
						|
 | 
						|
if (process.browser && process.env.NODE_ENV !== 'production') {
 | 
						|
  window.eventBus = eventBus
 | 
						|
}
 | 
						|
 | 
						|
export function on (eventName, component, method) {
 | 
						|
  let callback = method.bind(component)
 | 
						|
  eventBus.on(eventName, callback)
 | 
						|
  component.on('destroy', () => {
 | 
						|
    eventBus.removeListener(eventName, callback)
 | 
						|
  })
 | 
						|
}
 | 
						|
 | 
						|
export const emit = eventBus.emit.bind(eventBus)
 |