comty/packages/comty.js/src/remotes.js

78 lines
2.3 KiB
JavaScript

function composeRemote(path) {
if (typeof window !== "undefined") {
if (window.localStorage.getItem("comty:use_indev") || window.location.hostname === "indev.comty.app") {
return envOrigins["indev"][path]
}
}
return envOrigins[process.env.NODE_ENV ?? "production"][path]
}
function getCurrentHostname() {
if (typeof window === "undefined") {
return "localhost"
}
return window?.location?.hostname ?? "localhost"
}
const envOrigins = {
"development": {
default: `http://${getCurrentHostname()}:3010`,
chat: `http://${getCurrentHostname()}:3020`,
livestreaming: `http://${getCurrentHostname()}:3030`,
marketplace: `http://${getCurrentHostname()}:3040`,
music: `http://${getCurrentHostname()}:3050`,
files: `http://${getCurrentHostname()}:3060`,
sync: `http://${getCurrentHostname()}:3070`,
},
"indev": {
default: `https://indev_api.comty.app/main`,
chat: `https://indev_api.comty.app/chat`,
livestreaming: `https://indev_api.comty.app/livestreaming`,
marketplace: `https://indev_api.comty.app/marketplace`,
music: `https://indev_api.comty.app/music`,
files: `https://indev_api.comty.app/files`,
sync: `https://indev_api.comty.app/sync`,
},
"production": {
default: "https://api.comty.app",
chat: `https://chat_api.comty.app`,
livestreaming: `https://livestreaming_api.comty.app`,
marketplace: `https://marketplace_api.comty.app`,
music: `https://music_api.comty.app`,
files: `https://files_api.comty.app`,
sync: `https://sync_api.comty.app`,
}
}
export default {
default: {
origin: composeRemote("default"),
hasWebsocket: true,
useClassicAuth: true,
autoconnect: true,
},
chat: {
origin: composeRemote("chat"),
hasWebsocket: true,
},
music: {
origin: composeRemote("music"),
hasWebsocket: true,
},
livestreaming: {
origin: composeRemote("livestreaming"),
},
marketplace: {
origin: composeRemote("marketplace"),
},
files: {
origin: composeRemote("files"),
hasWebsocket: false,
},
sync: {
origin: composeRemote("sync"),
hasWebsocket: false,
}
}