UNPKG

colyseus.js

Version:

Colyseus Multiplayer SDK for JavaScript/TypeScript

49 lines 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.discordURLBuilder = discordURLBuilder; /** * Discord Embedded App SDK * https://github.com/colyseus/colyseus/issues/707 * * All URLs must go through the local proxy from * https://<app_id>.discordsays.com/.proxy/<mapped_url>/... * * URL Mapping Examples: * * 1. Using Colyseus Cloud: * - /colyseus/{subdomain} -> {subdomain}.colyseus.cloud * * Example: * const client = new Client("https://xxxx.colyseus.cloud"); * * ------------------------------------------------------------- * * 2. Using `cloudflared` tunnel: * - /colyseus/ -> <your-cloudflared-url>.trycloudflare.com * * Example: * const client = new Client("https://<your-cloudflared-url>.trycloudflare.com"); * * ------------------------------------------------------------- * * 3. Providing a manual /.proxy/your-mapping: * - /your-mapping/ -> your-endpoint.com * * Example: * const client = new Client("/.proxy/your-mapping"); * */ function discordURLBuilder(url) { var _a; const localHostname = ((_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.hostname) || "localhost"; const remoteHostnameSplitted = url.hostname.split('.'); const subdomain = (!url.hostname.includes("trycloudflare.com") && // ignore cloudflared subdomains !url.hostname.includes("discordsays.com") && // ignore discordsays.com subdomains remoteHostnameSplitted.length > 2) ? `/${remoteHostnameSplitted[0]}` : ''; return (url.pathname.startsWith("/.proxy")) ? `${url.protocol}//${localHostname}${subdomain}${url.pathname}${url.search}` : `${url.protocol}//${localHostname}/.proxy/colyseus${subdomain}${url.pathname}${url.search}`; } //# sourceMappingURL=discord.js.map