emitt v1.3.4
Emitt is Extended mitt
Differencies from mitt
Main difference is that you can emit as many arguments as you want:
emitter.emit('event', 'b', 1, ['arg1', 'foo', 'bar'])Tiny 224b functional event emitter / pubsub.
- Microscopic: weighs less than 225 bytes gzipped
- Useful: a wildcard
"*"event type listens to all events - Familiar: same names & ideas as Node's EventEmitter
- Functional: methods don't rely on
this, also you can pass as many as you want event arguments to emit method - Great Name: somehow emitt wasn't taken
EMitt was made for the browser, but works in any JavaScript runtime. It has no dependencies and supports IE9+.
Table of Contents
Install
This project uses node and npm. Go check them out if you don't have them locally installed.
$ npm install --save emittThen with a module bundler like rollup or webpack, use as you would anything else:
// using ES6 modules
import emitt from 'emitt'
// using CommonJS modules
var emitt = require('emitt')The UMD build is also available on unpkg:
<script src="https://unpkg.com/emitt/dist/mitt.umd.js"></script>You can find the library on window.emitt.
Usage
import emitt from 'emitt'
const emitter = emitt()
// listen to an event
emitter.on('foo', e => console.log('foo', e) )
// listen to all events
emitter.on('*', (type, e) => console.log(type, e) )
// fire an event
emitter.emit('foo', { a: 'b' })
// working with handler references:
function onFoo() {}
emitter.on('foo', onFoo) // listen
emitter.off('foo', onFoo) // unlistenTypescript
import emitt from 'emitt';
const emitter: mitt.Emitter = emitt();Examples & Demos
API
emitt
EMitt: Tiny (~225b) functional event emitter / pubsub.
Parameters
allEventHandlerMap
Returns Emitt
on
Register an event handler for the given type.
Parameters
typeString Type of event to listen for, or"*"for all eventshandlerFunction Function to call in response to given event
off
Remove an event handler for the given type.
Parameters
typeString Type of event to unregisterhandlerfrom, or"*"handlerFunction Handler function to remove
emit
Invoke all handlers for the given type.
If present, "*" handlers are invoked after type-matched handlers.
Parameters
typeString The event type to invoke
Contribute
First off, thanks for taking the time to contribute! Now, take a moment to be sure your contributions make sense to everyone else.
Development Start:
This project is typed with Flow Type annotations. To ensure you have the proper typings for this project run
flow-typed install
Reporting Issues
Found a problem? Want a new feature? First of all see if your issue or idea has already been reported. If don't, just open a new clear and descriptive issue.
Submitting pull requests
Pull requests are the greatest contributions, so be sure they are focused in scope, and do avoid unrelated commits.
- Fork it!
- Clone your fork:
git clone https://github.com/<your-username>/emitt - Navigate to the newly cloned directory:
cd emitt - Create a new branch for the new feature:
git checkout -b my-new-feature - Install the tools necessary for development:
npm install - Make your changes.
- Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - Submit a pull request with full remarks documenting your changes.