import { type GameObjectRegister } from "." import { type GameObjectNetcode } from "./GameObject" import type { Game } from "./Game" export interface LobbyNetcode extends GameObjectNetcode { games: Array } export type Lobby = Omit & { games: Array } export function create_lobby(input: LobbyNetcode, register: GameObjectRegister) { return new Proxy(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 }