An event emitter in 20 lines of code.
npm install emitter20An event emitter that used to be 20 lines of code but is still quite small. No dependencies.
``sh`
$ npm install --save emitter20
- 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.
`js
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:
`js
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:
`js
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!'
``
ISC © Raine Revere