Skip to content

Commit 4cce9cb

Browse files
committed
Add support for mitt.off("type"), which removes all handlers of a given type
1 parent 53eb689 commit 4cce9cb

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,12 +140,12 @@ Register an event handler for the given type.
140140
### off
141141

142142
Remove an event handler for the given type.
143-
If omit the `handler`, all event handlers of the given type are deleted.
143+
If `handler` is omitted, all handlers of the given type are removed.
144144

145145
#### Parameters
146146

147147
- `type` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [symbol](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol))** Type of event to unregister `handler` from, or `'*'`
148-
- `handler` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)** Handler function to remove
148+
- `handler` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)?** Handler function to remove
149149

150150
### emit
151151

src/index.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,10 @@ export default function mitt<Events extends Record<EventType, unknown>>(
5959
*/
6060
on<Key extends keyof Events>(type: Key, handler: GenericEventHandler) {
6161
const handlers: Array<GenericEventHandler> | undefined = all!.get(type);
62-
const added = handlers && handlers.push(handler);
63-
if (!added) {
62+
if (handlers) {
63+
handlers.push(handler);
64+
}
65+
else {
6466
all!.set(type, [handler] as EventHandlerList<Events[keyof Events]>);
6567
}
6668
},
@@ -79,7 +81,7 @@ export default function mitt<Events extends Record<EventType, unknown>>(
7981
handlers.splice(handlers.indexOf(handler) >>> 0, 1);
8082
}
8183
else {
82-
all.delete(type);
84+
all!.set(type, []);
8385
}
8486
}
8587
},

0 commit comments

Comments
 (0)