Files
front/netcode/Lobby.ts
T
legonzaur 82994274c1
release-tag / release-image (push) Successful in 57s
Fixes #4; Show game stats instead of UUIDs in lobby
2024-05-12 12:06:05 +02:00

25 lines
782 B
TypeScript

import { type GameObjectRegister } from "."
import { type GameObjectNetcode } from "./GameObject"
import type { Game } from "./Game"
export interface LobbyNetcode extends GameObjectNetcode {
games: Array<string>
}
export type Lobby = Omit<LobbyNetcode, 'games'> & {
games: Array<Game>
}
export function create_lobby(input: LobbyNetcode, register: GameObjectRegister) {
return new Proxy<any>(input, {
get(target: LobbyNetcode, prop, reciever) {
if (prop == "games") {
return target.games.map(e => register.games.get(e))
}
return Reflect.get(target, prop, reciever);
},
set(target, prop, val, receiver) {
return Reflect.set(target, prop, val, receiver);
}
}) as Lobby
}