mirror of
https://github.com/CharaChorder/DeviceManager.git
synced 2026-01-11 12:32:55 +00:00
17 lines
624 B
TypeScript
17 lines
624 B
TypeScript
import { KEYMAP_CODES, type KeyInfo } from "$lib/serial/keymap-codes";
|
|
import { get } from "svelte/store";
|
|
|
|
export function canUseIdAsString(info: KeyInfo): boolean {
|
|
return !!info.id && /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(info.id);
|
|
}
|
|
|
|
export function actionToValue(action: number | KeyInfo) {
|
|
const info =
|
|
typeof action === "number" ? get(KEYMAP_CODES).get(action) : action;
|
|
if (info && info.id?.length === 1)
|
|
return /^[<>\\\s]$/.test(info.id) ? `\\${info.id}` : info.id;
|
|
if (!info || !canUseIdAsString(info))
|
|
return `<0x${(info?.code ?? action).toString(16).padStart(2, "0")}>`;
|
|
return `<${info.id}>`;
|
|
}
|