key-display-names
Version:
Convert key codes to easily readable names.
24 lines (23 loc) • 838 B
JavaScript
import { KEY_MAP } from './key-maps.js';
export function keyToString(key, useShort = true) {
const lowerKey = key.toLowerCase();
if (KEY_MAP[lowerKey]) {
const match = KEY_MAP[lowerKey];
if (typeof match == 'string')
return match;
return useShort ? match[0] : match[1];
}
//! fallback if none of the predefined matchers were matched
//display the side nicely
if (lowerKey.match(/^.+(left|right)$/)) {
let side = key.match(/right|left/i)[0].toLowerCase();
side = side[0].toUpperCase() + side.substring(1);
let code = key.replace(/right|left/i, '');
key = side + code;
}
//convert from "PascalCase" to "Title Case"
return key
.replace(/([A-Z])/g, ' $1')
.replace(/\s\s+/g, ' ')
.trim();
}