node package manager


Simple cross-platform event emitter


simple cross-platform event emitter based on EventEmitter

var energy = require('energy')
var emitter = energy()

Or use new if you prefer. Either way works :)

var energy = require('energy')
var emitter = new energy()
  • emitter refers to an energy() object
  • event refers to an event name
  • listener refers to a function that listens to an event

  • Add listener for event
  • @return emitter

  • Remove listener(s)
    • .off() removes all listeners for all events
    • .off(event) removes all event listeners
    • .off(event, listener) removes all occurrences of event listener
    • .off(event, listener, quota) remove quota occurrences of event listener
  • @return emitter

  • Fire event listeners (in sequence) with the supplied arguments
  • Listeners run in the context of emitter
  • @return integer (number of listeners that fired)

  • Add a one-time event listener
  • @return emitter

  • Clone an emitter at its current state
  • @return a new emitter

  • Access the listeners array for the specified event
  • @return array (reference)

  • Reinitialize an emitter
  • @return emitter

  • Make target emitter-like based on emitter as the source.
  • @return emitter

  • Make target emitter-like based on a energy() object as the source
  • @return target with emitter methods and properties

  • Apply each function with scope and args
  • If breaker is defined, then functions can return breaker to abort subsequent applies
  • @return integer (number of functions that fired)

Works in node and in any browser. Tested in node, Chrome, FF, Opera, IE8

To make edits, first fork the repo, clone your fork, and cd into it. Run tests via the commands below and/or in a browser. Make edits in src and test as needed. Push your changes and then submit a pull request. Builds (in the project root) are created later via grunt and should not be changed in pull requests. CLI commands require node and the grunt-cli on your system.

$ npm install -g grunt-cli # install grunt-cli if you haven't already 
$ npm install # install devDependencies from package.json 
$ grunt jshint:sub # lint sub dirs 
$ grunt test # run tests 

Support this project by tipping the developer =)