Skip to content

Instantly share code, notes, and snippets.

type IOEvent =
| { type: "keyDown" | "keyUp"; keyCode: number }
| { type: "mouseDown" | "mouseUp"; mouseButton: number }
| { type: "mouseMove" | "mouseWheel"; x: number; y: number };
class IOEventListener {
private eventQueue = [] as IOEvent[];
private isRunning = false;
private eventQueueGenerator: Generator<undefined, void, unknown> | null = null;