emitter20

An event emitter in 20 lines of code.

Usage no npm install needed!

<script type="module">
  import emitter20 from 'https://cdn.skypack.dev/emitter20';
</script>

README

emitter20

npm version Build Status

An event emitter that used to be 20 lines of code but is still quite small. No dependencies.

Install

$ npm install --save emitter20

Methods

  • on: (eventName: string, callback: Function) => void - Subscribe a callback to the given event type.
  • off: (eventName: string, callback: Function) => void - Remove a callback from the given event type.
  • trigger: (eventName: string, callback: Function) => void - Trigger an event, invoking all subscribers.
  • clear: (eventName?: string) => void - Remove all subscribers from the given event type, or all subscribers if no event type is specified.

Usage

var Emitter = require('emitter20')

var emitter = new Emitter()

emitter.on('karate-chop', function() {
  console.log('Haiaaaaaa!')
})

emitter.trigger('karate-chop') // Haiaaaaa!'

Pass arbitrary data to the event handler:

var emitter = new Emitter()

emitter.on('welcome', function(name) {
  console.log(`Welcome {name}!`)
})

emitter.trigger('welcome', 'bob') // Welcome bob!

Can be used as a mixin:

var assign = require('lodash.assign')

var obj = { a: 1, b: 2 }
assign(obj, new Emitter())

obj.on('karate-chop', function() {
  console.log('Haiaaaaaa!')
})

obj.trigger('karate-chop') // Haiaaaaa!'

License

ISC © Raine Revere