21 lines
570 B
JavaScript
21 lines
570 B
JavaScript
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;
|
|
}
|