made return value not nullable, fixed sequence of keys in events, removed AI text from readme

This commit is contained in:
Ben
2025-08-17 17:07:50 +02:00
parent 093a812b01
commit ccdc0eb828
6 changed files with 40 additions and 30 deletions

View File

@@ -1,7 +1,7 @@
# hyperf-keybinds
Quickly handle keyboard shortcuts and sequences in your app.
Handle keybind sequences in your app.
You can have branches of sequences, the only restriction being that one sequence cannot be a strict subset of another.
## Install
```bash
@@ -11,23 +11,30 @@ npm install hyperf-keybinds
## Quick Start
```ts
import { createKeyHandler, KeybindEventTypes, ModifierKey } from 'hyperf-keybinds';
import { createKeyHandler, ModifierKey, KeybindEvent} from 'hyperf-keybinds';
// Define a command
// Define commands
const commands = [
{ command: [{ key: 'KeyS', modifiers: [ModifierKey.Control] }], callback: () => console.log('Ctrl+S!') },
{ command: [{ key: 'KeyA', modifiers: []}, { key: 'KeyS', modifiers: []}], callback: () => console.log('a - s!')}
];
// Create handler and emitter
const { handler, emitter } = createKeyHandler(commands);
// Create handler
const {handler, emitter, success} = createKeyHandler(commands, 5000);
// Attach to window
window.addEventListener('keydown', handler);
// Success is false if you provided invalid sequences.
if (success)
{
window.addEventListener('keydown', handler);
// Listen to events
emitter.on((event : KeybindEvent) => console.log(event.type, event));
}
// Listen to events
emitter.on(e => console.log(e.type));
```
Now Ctrl+S triggers your callback and emits events.
Pressing a then s triggers a separate callback.
Timeout (default 5000) can be observed by just pressing key A.
Key codes can be looked up here: https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values