keymaster
keymaster copied to clipboard
Feature Request: unbind scope
Feature Request: Unbind Scope
Motivaiton
I often find myself writing the following code:
['up', 'down', 'esc'].forEach((key) => {
keymaster.unbind(this.scope, key)
})
While this works, it could potentially lead to memory leaks, if a specific key is forgotten. E.g. if my module would have registered key('space', this.scope, cb)
.
Proposed Solution
A possibility to remove every event-handler for a given scope would be very helpful. Possible APIs:
keymaster.unbind(null, this.scope)
keymaster.unbindScope(this.scope)
Discussion
If such a feature is desired, I would be willing to send a PR along with tests. This being said, I would love to get your input on this beforehand. Do you consider the use-case good enough to add this functionality to keymaster
? And if yes, what would the ideal API for this be?
If you are already using scopes, can't you just do: key.deleteScope(this.scope);
According to the docs deleteScope
removes all events that are in that scope