let eventId = 0; const idToPacketMap = new Map(); const keytoIdMap = new Map(); const packetToIdMap = new Map(); export function allPackets() { return Array.from(idToPacketMap.values()); } export function idFromPacket(Packet) { return packetToIdMap.get(Packet); } export function packetFromId(id) { return idToPacketMap.get(id); } export function registerPacket({default: Packet}, key) { const id = keytoIdMap.has(key) ? keytoIdMap.get(key) : eventId++; idToPacketMap.set(id, Packet); keytoIdMap.set(key, id); packetToIdMap.set(Packet, id); return id; }