Skip to content

A go EventEmitter inspired from Node.js's EventEmitter.

License

Notifications You must be signed in to change notification settings

ShadyZOZ/goemitter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

goemitter

Build Status codecov Go Report Card

A go EventEmitter inspired from Node.js's EventEmitter.


Development in progress, plan to implement most is not all of the Node.js's EventEmitter api.

node api list

  • Event: 'newListener'
  • Event: 'removeListener'
  • EventEmitter.listenerCount(emitter, eventName) deprecated
  • EventEmitter.defaultMaxListeners
  • emitter.addListener(eventName, listener)
  • emitter.emit(eventName[, ...args])
  • emitter.eventNames()
  • emitter.getMaxListeners()
  • emitter.listenerCount(eventName)
  • emitter.listeners(eventName)
  • emitter.off(eventName, listener)
  • emitter.on(eventName, listener)
  • emitter.once(eventName, listener)
  • emitter.prependListener(eventName, listener)
  • emitter.prependOnceListener(eventName, listener)
  • emitter.removeAllListeners([eventName])
  • emitter.removeListener(eventName, listener)
  • emitter.setMaxListeners(n)
  • emitter.rawListeners(eventName)
  • emitter[Symbol.for('nodejs.rejection')](err, eventName[, ...args]) experimental

TODOs

  • Current implement of event handling will not promise the correct execution of Emit called before removeAllListeners or removeListener, thus a different approach needs to be done
  • Error handling mechanism