export default (input: string): string[] => { if ( Object.keys(aliases).some((a) => a.toLowerCase() === input.toLowerCase()) ) { const codes = aliases[input]; return Array.isArray(codes) ? codes : [codes]; } else { return [input]; } }; export const aliases = { esc: "Escape", enter: ["Enter", "NumpadEnter"], up: "ArrowUp", down: "ArrowDown", left: "ArrowLeft", right: "ArrowRight", plus: ["NumpadAdd", "Semicolon"], }; /*! * Programatically add the following */ // lower case chars for (let i = 97; i < 123; i++) { const char = String.fromCharCode(i); aliases[char] = `Key${char.toUpperCase()}`; } // numbers for (let i = 0; i < 10; i++) { aliases[i] = [`Numpad${i}`, `Digit${i}`]; }