The MultiKeyHandler
class allows you to handle multiple key combinations, including arrow keys, with customizable options for debugging and event handling.
You can install the package using npm:
npm install multi-key-handler
Create an instance of MultiKeyHandler
and provide a callback function to execute when a key combination is pressed.
import { MultiKeyHandler } from 'multi-key-handler';
const handler = new MultiKeyHandler((states) => {
console.log('Current key states:', states);
}, {
keys: 'asdf', // Listen for 'a', 's', 'd', 'f' keys
arrows: true, // Enable arrow key handling
debug: true, // Enable debug mode
});
The callback function receives an object containing the current state of the keys being pressed. Each key's state is either true
(pressed) or false
(released).
(states) => {
console.log(states);
// Example output:
// {
// a: true,
// s: false,
// d: true,
// f: false,
// up: false,
// down: true
// }
}
new MultiKeyHandler(callback, options);
- callback: A function that will be called whenever a key is pressed or released.
- options: An optional object to configure the handler:
- keys: A string of keys to listen for.
- arrows: A boolean indicating if the arrow keys should be included (
true
orfalse
). - debug: A boolean to enable debug mode.
Returns the currently configured keys as a string.
console.log(handler.keymap); // 'asdf'
Sets the keys to listen for. The input should be a string.
handler.keymap = 'qwer';
Option | Type | Default | Description |
---|---|---|---|
keys | string | '' | The keys to listen for. |
arrows | boolean | false | Whether to include arrow keys. |
debug | boolean | false | Enables debug mode. |
When debug mode is enabled, a table of the current key states will be printed to the console whenever a change occurs.
new MultiKeyHandler((states) => {}, { debug: true });
This project is licensed under the MIT License.