mirror of
https://github.com/coaidev/coai.git
synced 2025-06-02 11:50:23 +09:00
131 lines
3.5 KiB
TypeScript
131 lines
3.5 KiB
TypeScript
import { updateDocumentTitle, updateFavicon } from "@/utils/dom.ts";
|
|
import { getMemory, setMemory } from "@/utils/memory.ts";
|
|
import { announcementEvent } from "@/events/announcement.ts";
|
|
|
|
export let appName =
|
|
localStorage.getItem("app_name") ||
|
|
import.meta.env.VITE_APP_NAME ||
|
|
"Chat Nio";
|
|
export let appLogo =
|
|
localStorage.getItem("app_logo") ||
|
|
import.meta.env.VITE_APP_LOGO ||
|
|
"/favicon.ico";
|
|
export let blobEndpoint =
|
|
localStorage.getItem("blob_endpoint") ||
|
|
import.meta.env.VITE_BLOB_ENDPOINT ||
|
|
"https://blob.chatnio.net";
|
|
export let docsEndpoint =
|
|
localStorage.getItem("docs_url") ||
|
|
import.meta.env.VITE_DOCS_ENDPOINT ||
|
|
"https://docs.chatnio.net";
|
|
export let buyLink =
|
|
localStorage.getItem("buy_link") || import.meta.env.VITE_BUY_LINK || "";
|
|
|
|
export const useDeeptrain = !!import.meta.env.VITE_USE_DEEPTRAIN;
|
|
export const backendEndpoint = import.meta.env.VITE_BACKEND_ENDPOINT || "/api";
|
|
export const deeptrainEndpoint =
|
|
import.meta.env.VITE_DEEPTRAIN_ENDPOINT || "https://deeptrain.net";
|
|
export const deeptrainAppName = import.meta.env.VITE_DEEPTRAIN_APP || "chatnio";
|
|
export const deeptrainApiEndpoint =
|
|
import.meta.env.VITE_DEEPTRAIN_API_ENDPOINT || "https://api.deeptrain.net";
|
|
|
|
updateDocumentTitle(appName);
|
|
updateFavicon(appLogo);
|
|
|
|
export function getDev(): boolean {
|
|
/**
|
|
* return if the current environment is development
|
|
*/
|
|
return window.location.hostname === "localhost";
|
|
}
|
|
|
|
export function getRestApi(deploy: boolean): string {
|
|
/**
|
|
* return the REST API address
|
|
*/
|
|
return !deploy ? "http://localhost:8094" : backendEndpoint;
|
|
}
|
|
|
|
export function getWebsocketApi(deploy: boolean): string {
|
|
/**
|
|
* return the WebSocket API address
|
|
*/
|
|
if (!deploy) return "ws://localhost:8094";
|
|
|
|
if (backendEndpoint.startsWith("http://"))
|
|
return `ws://${backendEndpoint.slice(7)}`;
|
|
if (backendEndpoint.startsWith("https://"))
|
|
return `wss://${backendEndpoint.slice(8)}`;
|
|
if (backendEndpoint.startsWith("/"))
|
|
return location.protocol === "https:"
|
|
? `wss://${location.host}${backendEndpoint}`
|
|
: `ws://${location.host}${backendEndpoint}`;
|
|
return backendEndpoint;
|
|
}
|
|
|
|
export function getTokenField(deploy: boolean): string {
|
|
/**
|
|
* return the token field name in localStorage
|
|
*/
|
|
return deploy ? "token" : "token-dev";
|
|
}
|
|
|
|
export function setAppName(name: string): void {
|
|
/**
|
|
* set the app name in localStorage
|
|
*/
|
|
name = name.trim() || "Chat Nio";
|
|
setMemory("app_name", name);
|
|
appName = name;
|
|
|
|
updateDocumentTitle(name);
|
|
}
|
|
|
|
export function setAppLogo(logo: string): void {
|
|
/**
|
|
* set the app logo in localStorage
|
|
*/
|
|
logo = logo.trim() || "/favicon.ico";
|
|
setMemory("app_logo", logo);
|
|
appLogo = logo;
|
|
|
|
updateFavicon(logo);
|
|
}
|
|
|
|
export function setDocsUrl(url: string): void {
|
|
/**
|
|
* set the docs url in localStorage
|
|
*/
|
|
url = url.trim() || "https://docs.chatnio.net";
|
|
setMemory("docs_url", url);
|
|
docsEndpoint = url;
|
|
}
|
|
|
|
export function setBlobEndpoint(endpoint: string): void {
|
|
/**
|
|
* set the blob endpoint in localStorage
|
|
*/
|
|
endpoint = endpoint.trim() || "https://blob.chatnio.net";
|
|
setMemory("blob_endpoint", endpoint);
|
|
blobEndpoint = endpoint;
|
|
}
|
|
|
|
export function setAnnouncement(announcement: string): void {
|
|
/**
|
|
* set the announcement in localStorage
|
|
*/
|
|
if (getMemory("announcement") === announcement) return;
|
|
setMemory("announcement", announcement);
|
|
|
|
announcementEvent.emit(announcement);
|
|
}
|
|
|
|
export function setBuyLink(link: string): void {
|
|
/**
|
|
* set the buy link in localStorage
|
|
*/
|
|
link = link.trim() || "";
|
|
setMemory("buy_link", link);
|
|
buyLink = link;
|
|
}
|