mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-28 06:22:45 -08:00
refactor: add main.ts decomposition guardrails and extract core helpers
This commit is contained in:
30
src/core/utils/keybindings.ts
Normal file
30
src/core/utils/keybindings.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import { Config, Keybinding } from "../../types";
|
||||
|
||||
export function resolveKeybindings(
|
||||
config: Config,
|
||||
defaultKeybindings: Keybinding[],
|
||||
): Keybinding[] {
|
||||
const userBindings = config.keybindings || [];
|
||||
const bindingMap = new Map<string, (string | number)[] | null>();
|
||||
|
||||
for (const binding of defaultKeybindings) {
|
||||
bindingMap.set(binding.key, binding.command);
|
||||
}
|
||||
|
||||
for (const binding of userBindings) {
|
||||
if (binding.command === null) {
|
||||
bindingMap.delete(binding.key);
|
||||
} else {
|
||||
bindingMap.set(binding.key, binding.command);
|
||||
}
|
||||
}
|
||||
|
||||
const keybindings: Keybinding[] = [];
|
||||
for (const [key, command] of bindingMap) {
|
||||
if (command !== null) {
|
||||
keybindings.push({ key, command });
|
||||
}
|
||||
}
|
||||
|
||||
return keybindings;
|
||||
}
|
||||
Reference in New Issue
Block a user