RoomManager.ts 575 Bytes
import { Room } from "./Room";

export class RoomManager {
  private rooms: Map<string, Room>;

  constructor() {
    this.rooms = new Map<string, Room>();
  }

  public create(name: string, maxConnections: number): Room {
    const room = new Room(name, maxConnections);
    this.rooms.set(name, room);
    return room;
  }

  public get(uuid: string): Room | undefined {
    return this.rooms.get(uuid);
  }

  public delete(uuid: string): void {
    const room = this.get(uuid);
    if (room !== undefined) {
      room.close();
      this.rooms.delete(uuid);
    }
  }
}