feat: rudimentary filter in action selector

Fixes #1
This commit is contained in:
2023-11-03 18:57:22 +01:00
parent 65a536cdea
commit 08df049170
4 changed files with 66 additions and 17 deletions

View File

@@ -5,14 +5,14 @@ export interface KeyInfo extends Partial<ActionInfo> {
category: KeymapCategory
}
const keymaps = (await Promise.all(
export const KEYMAP_CATEGORIES = (await Promise.all(
Object.values(import.meta.glob("$lib/assets/keymaps/*.yml")).map(async load =>
load().then(it => (it as any).default),
),
)) as KeymapCategory[]
export const KEYMAP_CODES: Record<number, KeyInfo> = Object.fromEntries(
keymaps.flatMap(category =>
KEYMAP_CATEGORIES.flatMap(category =>
Object.entries(category.actions).map(([code, action]) => [
Number(code),
{...action, code: Number(code), category},
@@ -21,13 +21,11 @@ export const KEYMAP_CODES: Record<number, KeyInfo> = Object.fromEntries(
)
export const KEYMAP_IDS: Map<string, KeyInfo> = new Map(
keymaps
.flatMap(category =>
Object.entries(category.actions).map(
([code, action]) => [action.id!, {...action, code: Number(code), category}] as const,
),
)
.filter(([id]) => id !== undefined),
KEYMAP_CATEGORIES.flatMap(category =>
Object.entries(category.actions).map(
([code, action]) => [action.id!, {...action, code: Number(code), category}] as const,
),
).filter(([id]) => id !== undefined),
)
export const specialKeycodes = new Map([