// API-эндпоинты плеера Рублокса. // // Все URL бэкенда настраиваются через Vite environment variables: // VITE_API_BASE — базовый URL HTTP-API (дефолт: '' для localhost+vite-proxy) // VITE_REALTIME_HTTP — Colyseus matchmaking HTTP-эндпоинт // VITE_REALTIME_WS — Colyseus WebSocket-эндпоинт // VITE_RUBLOX_HOME — главный сайт Рублокса (редирект если нет JWT) // // См. .env.example с готовыми дефолтами на публичный staging // (https://dev-api.rublox.pro). // // В dev (vite на localhost) BASE пустой и запросы идут на относительные // /api-* пути, которые vite.config.js проксирует на staging/prod. const ENV = (typeof import.meta !== 'undefined' && import.meta.env) || {}; const IS_DEV = typeof window !== 'undefined' && (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1'); // Пустой BASE в dev → vite-proxy роутит сам. // В prod → либо env-настроенный бэкенд, либо текущий origin. const BASE = ENV.VITE_API_BASE ?? (IS_DEV ? '' : (typeof window !== 'undefined' ? window.location.origin : '')); export const USER_addres = BASE + '/api-user'; export const STORYS_addres = BASE + '/api-storys'; // Эндпоинты realtime (Colyseus). По умолчанию используем HTTPS-relative // для HTTPS-страницы (vite-proxy обрабатывает /api-game), иначе берём // env-настроенные прямые URL. const IS_HTTPS = typeof window !== 'undefined' && window.location.protocol === 'https:'; export const REALTIME_HTTP = ENV.VITE_REALTIME_HTTP ?? (IS_HTTPS ? `${window.location.origin}/api-game` : 'http://localhost:8685'); export const REALTIME_WS = ENV.VITE_REALTIME_WS ?? (IS_HTTPS ? `wss://${window.location.host}/api-game` : 'ws://localhost:8685'); // Главный сайт Рублокса — куда редиректить юзеров без ticket/JWT. export const RUBLOX_HOME = ENV.VITE_RUBLOX_HOME ?? 'https://rublox.pro/app'; // Папки ассетов для фото профиля и скинов (раздают user/storys-микросервисы). export const FOLDER_PROFILE = USER_addres + '/assets/profile/'; export const FOLDER_STORYS = STORYS_addres + '/assets/skin/';