/** * Hardcoded list of game servers the landing page offers to players. * * Each entry is the public origin of a dockerized `declared-server` instance. * The join screen polls `/state` (see `serverInformationEndpoint`) and * only shows a server once it responds, so listing an offline origin here is * harmless. Add or remove origins as you deploy more server containers. */ const productionServers: Array = ['https://declared.schmelczer.dev']; /** * When the page is served from localhost (i.e. the webpack-dev-server), also * offer the local backend so a `npm start` server can be joined during * development. The backend's default port is 3000 (see backend/src/options.ts). * In production the hostname is `declared.schmelczer.dev`, so this never leaks. */ const isDevelopment = typeof location !== 'undefined' && (location.hostname === 'localhost' || location.hostname === '127.0.0.1'); const servers: Array = isDevelopment ? [`http://${location.hostname}:3000`, ...productionServers] : productionServers; export abstract class Configuration { public static async initialize(): Promise { // Kept async for call-site compatibility; the server list is static now. } public static get servers(): Array { return servers; } }