diff options
| author | Jason Miller <[email protected]> | 2021-06-22 18:21:48 -0400 |
|---|---|---|
| committer | Jason Miller <[email protected]> | 2021-06-22 18:21:48 -0400 |
| commit | 4cce9cb6397af70498525c7b1cc829de2b21edc9 (patch) | |
| tree | 8ce02051ee44fe760687ff868ec37c76a3affe12 /src | |
| parent | 53eb689c83bca78d9275f724995406495262c333 (diff) | |
Add support for mitt.off("type"), which removes all handlers of a given type
Diffstat (limited to 'src')
| -rw-r--r-- | src/index.ts | 8 |
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, []); } } }, |
