UNPKG

@hvm/vm

Version:

hvm internal package for virtual machine

35 lines (32 loc) 792 B
const INPUT_MAP = { NL: 129, BS: 129, LEFT: 130, UP: 131, RIGHT: 132, DOWN: 133, HOME: 134, END: 135, PUP: 136, PDOWN: 137, INSERT: 138, DEL: 139, ESC: 140, } Array(12).fill(null).forEach((_, i) => { INPUT_MAP[`F${i}`] = 141 + i; }); module.exports = class BasicInput { constructor(mapping = {}) { const keys = []; const keydown = e => keys.push(e.keyCode); const keyup = e => { let idx = 0; keys.some((code, i) => code === e.keyCode && (idx = i) && true); return idx || 0; }; document.addEventListener("keydown", keydown); document.addEventListener("keyup", keyup); this.scan = () => (!keys.length ? 0 : keys[keys.length - 1]); } }