2023-01-07 21:36:18 +01:00
|
|
|
import { APP_VERSION, GITHUB_LINK, DISCORD_LINK } from "./constants";
|
2022-12-27 16:44:36 +01:00
|
|
|
|
2022-12-29 18:25:57 +01:00
|
|
|
interface Config {
|
2022-12-27 16:44:36 +01:00
|
|
|
APP_VERSION: string;
|
|
|
|
GITHUB_LINK: string;
|
|
|
|
DISCORD_LINK: string;
|
|
|
|
OMDB_API_KEY: string;
|
|
|
|
TMDB_API_KEY: string;
|
|
|
|
CORS_PROXY_URL: string;
|
2023-02-19 16:05:19 +01:00
|
|
|
NORMAL_ROUTER: boolean;
|
2022-12-27 16:44:36 +01:00
|
|
|
}
|
|
|
|
|
2023-02-22 21:41:13 +01:00
|
|
|
export interface RuntimeConfig {
|
|
|
|
APP_VERSION: string;
|
|
|
|
GITHUB_LINK: string;
|
|
|
|
DISCORD_LINK: string;
|
|
|
|
OMDB_API_KEY: string;
|
|
|
|
TMDB_API_KEY: string;
|
|
|
|
NORMAL_ROUTER: boolean;
|
|
|
|
PROXY_URLS: string[];
|
2022-12-29 18:25:57 +01:00
|
|
|
}
|
|
|
|
|
2022-12-27 16:44:36 +01:00
|
|
|
const env: Record<keyof Config, undefined | string> = {
|
|
|
|
OMDB_API_KEY: import.meta.env.VITE_OMDB_API_KEY,
|
|
|
|
TMDB_API_KEY: import.meta.env.VITE_TMDB_API_KEY,
|
|
|
|
APP_VERSION: undefined,
|
|
|
|
GITHUB_LINK: undefined,
|
|
|
|
DISCORD_LINK: undefined,
|
|
|
|
CORS_PROXY_URL: import.meta.env.VITE_CORS_PROXY_URL,
|
2023-02-19 16:05:19 +01:00
|
|
|
NORMAL_ROUTER: import.meta.env.VITE_NORMAL_ROUTER,
|
2022-12-27 16:44:36 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
const alerts = [] as string[];
|
|
|
|
|
|
|
|
// loads from different locations, in order: environment (VITE_{KEY}), window (public/config.js)
|
|
|
|
function getKey(key: keyof Config): string {
|
|
|
|
let windowValue = (window as any)?.__CONFIG__?.[`VITE_${key}`];
|
|
|
|
if (windowValue !== undefined && windowValue.length === 0)
|
|
|
|
windowValue = undefined;
|
|
|
|
const value = env[key] ?? windowValue ?? undefined;
|
|
|
|
if (value === undefined) {
|
|
|
|
if (!alerts.includes(key)) {
|
|
|
|
// eslint-disable-next-line no-alert
|
|
|
|
window.alert(`Misconfigured instance, missing key: ${key}`);
|
|
|
|
alerts.push(key);
|
|
|
|
}
|
|
|
|
return "";
|
|
|
|
}
|
|
|
|
|
|
|
|
return value;
|
|
|
|
}
|
|
|
|
|
2022-12-29 18:25:57 +01:00
|
|
|
export function conf(): RuntimeConfig {
|
2022-12-27 16:44:36 +01:00
|
|
|
return {
|
|
|
|
APP_VERSION,
|
|
|
|
GITHUB_LINK,
|
|
|
|
DISCORD_LINK,
|
|
|
|
OMDB_API_KEY: getKey("OMDB_API_KEY"),
|
|
|
|
TMDB_API_KEY: getKey("TMDB_API_KEY"),
|
2023-02-22 21:41:13 +01:00
|
|
|
PROXY_URLS: getKey("CORS_PROXY_URL")
|
|
|
|
.split(",")
|
|
|
|
.map((v) => v.trim()),
|
2023-02-19 16:05:19 +01:00
|
|
|
NORMAL_ROUTER: (getKey("NORMAL_ROUTER") ?? "false") === "true",
|
2022-12-27 16:44:36 +01:00
|
|
|
};
|
|
|
|
}
|