NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1569 most downloaded on npm
Tiny 200b functional Event Emitter / pubsub.
Last release 3 years ago
no release in 18 months
Release timing varies
gaps range from 6 weeks to 2.0 years
Nearly every release is documented
notes for 11 of 12 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
12 releases · first in 2017
chore: fix typescript issue with NodeNext , fix #166 by @Mister-Hope in #167
NodeNext, fix #166 by @Mister-Hope in #167Full Changelog: 3.0.0...3.0.1
Mitt 3.0 adds a couple nice new features.
Mitt 3.0 adds a couple nice new features.
Calling .off("type") with no handler argument now removes all listeners of that type (#123, #124, #129 - thanks @sealice!).
It's now possible to define explicit types for events and their arguments (#114, thanks @iyegoroff & @deskoh):
import mitt from 'mitt';
const events = mitt<{ foo: string }>();
events.on('foo', e => {}); // `e` is inferred to be of type string!
events.emit('foo', 42); // TypeError: got a number, expected a stringAs of 3.0.0, the mitt package now uses Package Exports. This shouldn't change usage or anything, it just means you're more likely to end up using the ES Module version of Mitt when running in Node.
One column per quarter.
It's written in TypeScript and ships type definitions ( #107 , thanks again @jackfranklin !)
It's written in TypeScript and ships type definitions (#107, thanks again @jackfranklin!)
Event handlers are now stored in a Map instead of an Object.
Upgrading: If you aren't passing an object to
mitt({}), version 2 is backwards-compatible.
If you were, turn your object into a map:-const handlers = { - foo: [() => alert(1)] -}; +const handlers = new Map(); +handlers.set('foo', [() => alert(1)]); const events = mitt(handlers);
The event handler Map is now exposed as .all: (#105, thanks @jaylinski!)
const events = mitt(); events.on('foo', () => alert(1)); events.on('bar', () => alert(2)); // access handlers directly if needed: events.all.get('foo') // [() => alert(1)] // remove all event handlers: events.all.clear();
This patch update for the 2.0 prerelease fixes missing type exports ( #101 ). It also reduces size and improves performance ( #100 ).
This patch update for the 2.0 prerelease fixes missing type exports (#101).
It also reduces size and improves performance (#100).
Possible Breaking Change: mitt() previously accepted an optional Object "event map" argument. In 2.0.0, events are stored in an actual JavaScript Map…
Possible Breaking Change: mitt() previously accepted an optional Object "event map" argument. In 2.0.0, events are stored in an actual JavaScript Map rather than as properties on a plain object:
import mitt from 'mitt';
- const map = {};
+ const map = new Map();
const events = mitt(map);
const foo = () => {};
events.on('foo', foo);
- map.foo // [foo];
+ map.get('foo') // [foo];Now the good news: if you weren't using this argument, mitt@2 isn't a breaking change for you.
Also, Mitt is now written in TypeScript! Huge thanks to @jackfranklin for doing all the work including setting up a much nicer build toolchain.
It's Mitt's first release since 2017! That's the thing about a 200 byte library - there's not a lot of code here to necessitate constant updates. Take
It's Mitt's first release since 2017! That's the thing about a 200 byte library - there's not a lot of code here to necessitate constant updates. Take it as a sign of stability.
This release is primarily an improvement to the TypeScript definition we ship with Mitt:
mitt() with or without new in TypeScript (#60/#67 - thanks @davidkpiano).on('*', handler) now has types that pass the correct (event, data) arguments (#76, thanks @zbuttram)all parameter, which lets you pass your own mapping of handler Arrays to Mitt, now has correct types (#73, thanks @jesperzach)Fix handler removal ( .off() ) during emit ( #65 , thanks @sqal & @farskid )
Point jsnext:main entry to the ES Modules build instead of src , since src contains Flowtype annotations and a lot of comments.
jsnext:main entry to the ES Modules build instead of src, since src contains Flowtype annotations and a lot of comments.Avoid unnecessarily creating listener arrays in off() if they don't exist (saves 4b)
off() if they don't exist (saves 4b)Refactor courtesy of @tunnckoCore
Fixes React Native complaining about a Babel configuration (#24, thanks @skellock!)
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →