Skip to content

Releases: developit/mitt

3.0.1

Choose a tag to compare

@developit developit released this 04 Jul 17:32

What's Changed

New Contributors

Full Changelog: 3.0.0...3.0.1

3.0.0

Choose a tag to compare

@developit developit released this 23 Jun 20:58
13905bd

Mitt 3.0 adds a couple nice new features.

1. Remove all handlers of a type:

Calling .off("type") with no handler argument now removes all listeners of that type (#123, #124, #129 - thanks @sealice!).

2. New, stronger typing:

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 string

3. Package Exports:

As 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.

2.1.0

Choose a tag to compare

@developit developit released this 15 Jul 15:04

Mitt 2 is out of preview!

  • 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();

2.0.1

2.0.1 Pre-release
Pre-release

Choose a tag to compare

@developit developit released this 27 May 17:46
5959175

This patch update for the 2.0 prerelease fixes missing type exports (#101).
It also reduces size and improves performance (#100).

2.0.0

2.0.0 Pre-release
Pre-release

Choose a tag to compare

@developit developit released this 26 May 22:44
4594463

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.

1.2.0

Choose a tag to compare

@developit developit released this 21 Oct 17:09

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:

  • You can now invoke 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)
  • The optional all parameter, which lets you pass your own mapping of handler Arrays to Mitt, now has correct types (#73, thanks @jesperzach)

v1.1.3

Choose a tag to compare

@developit developit released this 07 Dec 03:26
  • Fix handler removal (.off()) during emit (#65, thanks @sqal & @farskid)
  • Fix emit and EventHandler type annotations (#47, thanks @rvikmanis)
  • more precise type annotation for WildCardEventHandler (#58, thanks @tungv)

v1.1.2

Choose a tag to compare

@developit developit released this 17 Apr 17:30
  • Point jsnext:main entry to the ES Modules build instead of src, since src contains Flowtype annotations and a lot of comments.

v1.1.1

Choose a tag to compare

@developit developit released this 17 Apr 17:29
  • Avoid unnecessarily creating listener arrays in off() if they don't exist (saves 4b)

1.1.0

Choose a tag to compare

@developit developit released this 17 Apr 17:28
  • Refactor courtesy of @tunnckoCore
  • Event types have been corrected to be case-sensitive, as they are in Node's EventEmitter.