- src/api/API.js — комменты, описание env - vite.config.js — описание полей - src/App.jsx — IndexRoute (текст «Плеер Рублокса») - src/KubikonPlayer/KubikonPlayer.jsx — exitPlayer - src/engine/PlayerController.js — _storysApiUrl - src/engine/GameRuntime.js — _resolveExternalUrl - src/engine/devlog.js — убрал упоминания приватных путей разработчика - src/fixtures/sample-game.json — title/description
44 lines
2.4 KiB
JavaScript
44 lines
2.4 KiB
JavaScript
// 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/';
|