Mittt
Tiny functional event emitter / pubsub.
Forked from https://github.com/developit/mitt
New project created from TSDX CLI.
- Microscopic: weighs ~300 bytes gzipped size
- Useful: a wildcard
"*"
event type listens to all events - Useful: a wildcard
"*"
emit invokes all registered handlers - Useful: a wildcard
"*!"
emit invokes all unique registered handlers - Functional: methods don't rely on
this
Mittt was made for the browser, but works in any JavaScript runtime. It has no dependencies and supports IE11+.
Table of Contents
Install
This project uses node and npm. Go check them out if you don't have them locally installed.
npm install mittt# or # yarn add mittt
Then with a module bundler like rollup or webpack, use as you would anything else:
// using ES6 modules // using CommonJS modulesvar mittt =
The ESM build is also available on unpkg:
Usage
const emitter = { console} // Listen to an eventemitter // Listen to all eventsemitter // Fire an eventemitter // Fire an event with payloadconst payload = a: 'b' emitter // Fire all registered handlers with payloademitter // payload is optional // Given these listeners. Both onEvent would be invoked on '*' emit.emitteremitteremitter // Fire all unique registered handlers with payloademitter // payload is optional // Given these listeners. Only one onEvent would be invoked on '*!' emit.emitteremitteremitter // Given these listeners. Both handlers would be invoked on '*!' emit.emitteremitteremitter // Working with handler references:emitter // listenemitter // unlisten // Initiate emitter with on event setupconst eventHandlerMap = ObjecteventHandlerMapfoo = { console // foo, 123 } { console // foo, 123 } const emitter = emitter // all handlers for foo are invoked
TypeScript
emitter.on'foo', foo
Smallest-Install
If you want to install the smallest size without wildcard (*
) support.
~200 bytes gzipped size.
npm install mittt@^1# or # yarn add mittt@^1