aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJason Miller <[email protected]>2021-06-22 18:21:48 -0400
committerJason Miller <[email protected]>2021-06-22 18:21:48 -0400
commit4cce9cb6397af70498525c7b1cc829de2b21edc9 (patch)
tree8ce02051ee44fe760687ff868ec37c76a3affe12 /src
parent53eb689c83bca78d9275f724995406495262c333 (diff)
Add support for mitt.off("type"), which removes all handlers of a given type
Diffstat (limited to 'src')
-rw-r--r--src/index.ts8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/index.ts b/src/index.ts
index 4648156..dfc0c1f 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -59,8 +59,10 @@ export default function mitt<Events extends Record<EventType, unknown>>(
*/
on<Key extends keyof Events>(type: Key, handler: GenericEventHandler) {
const handlers: Array<GenericEventHandler> | undefined = all!.get(type);
- const added = handlers && handlers.push(handler);
- if (!added) {
+ if (handlers) {
+ handlers.push(handler);
+ }
+ else {
all!.set(type, [handler] as EventHandlerList<Events[keyof Events]>);
}
},
@@ -79,7 +81,7 @@ export default function mitt<Events extends Record<EventType, unknown>>(
handlers.splice(handlers.indexOf(handler) >>> 0, 1);
}
else {
- all.delete(type);
+ all!.set(type, []);
}
}
},