mirror of
https://github.com/movie-web/movie-web.git
synced 2024-11-11 01:05:08 +01:00
Return null values where appr and handle the env being blank
This commit is contained in:
parent
e555354e17
commit
b560445659
@ -31,10 +31,10 @@ export interface RuntimeConfig {
|
||||
DONATION_LINK: string;
|
||||
DISCORD_LINK: string;
|
||||
DMCA_EMAIL: string | null;
|
||||
TMDB_READ_API_KEY: string;
|
||||
TMDB_READ_API_KEY: string | null;
|
||||
NORMAL_ROUTER: boolean;
|
||||
PROXY_URLS: string[];
|
||||
BACKEND_URL: string;
|
||||
BACKEND_URL: string | null;
|
||||
DISALLOWED_IDS: string[];
|
||||
TURNSTILE_KEY: string | null;
|
||||
CDN_REPLACEMENTS: Array<string[]>;
|
||||
@ -66,48 +66,48 @@ const env: Record<keyof Config, undefined | string> = {
|
||||
HAS_ONBOARDING: import.meta.env.VITE_HAS_ONBOARDING,
|
||||
};
|
||||
|
||||
// loads from different locations, in order: environment (VITE_{KEY}), window (public/config.js)
|
||||
function getKeyValue(key: keyof Config): string | undefined {
|
||||
let windowValue = (window as any)?.__CONFIG__?.[`VITE_${key}`];
|
||||
if (
|
||||
windowValue !== null &&
|
||||
windowValue !== undefined &&
|
||||
windowValue.length === 0
|
||||
)
|
||||
windowValue = undefined;
|
||||
return env[key] ?? windowValue ?? undefined;
|
||||
function coerceUndefined(value: string | null | undefined): string | undefined {
|
||||
if (value == null) return undefined;
|
||||
if (value.length === 0) return undefined;
|
||||
return value;
|
||||
}
|
||||
|
||||
function getKey(key: keyof Config, defaultString?: string): string {
|
||||
return getKeyValue(key)?.toString() ?? defaultString ?? "";
|
||||
// loads from different locations, in order: environment (VITE_{KEY}), window (public/config.js)
|
||||
function getKeyValue(key: keyof Config): string | undefined {
|
||||
const windowValue = (window as any)?.__CONFIG__?.[`VITE_${key}`];
|
||||
|
||||
return coerceUndefined(env[key]) ?? coerceUndefined(windowValue) ?? undefined;
|
||||
}
|
||||
|
||||
function getKey(key: keyof Config): string | null;
|
||||
function getKey(key: keyof Config, defaultString: string): string;
|
||||
function getKey(key: keyof Config, defaultString?: string): string | null {
|
||||
return getKeyValue(key)?.toString() ?? defaultString ?? null;
|
||||
}
|
||||
|
||||
export function conf(): RuntimeConfig {
|
||||
const dmcaEmail = getKey("DMCA_EMAIL");
|
||||
const chromeExtension = getKey("ONBOARDING_CHROME_EXTENSION_INSTALL_LINK");
|
||||
const firefoxExtension = getKey("ONBOARDING_FIREFOX_EXTENSION_INSTALL_LINK");
|
||||
const proxyInstallLink = getKey("ONBOARDING_PROXY_INSTALL_LINK");
|
||||
const turnstileKey = getKey("TURNSTILE_KEY");
|
||||
return {
|
||||
APP_VERSION,
|
||||
GITHUB_LINK,
|
||||
DONATION_LINK,
|
||||
DISCORD_LINK,
|
||||
DMCA_EMAIL: dmcaEmail.length > 0 ? dmcaEmail : null,
|
||||
ONBOARDING_CHROME_EXTENSION_INSTALL_LINK:
|
||||
chromeExtension.length > 0 ? chromeExtension : null,
|
||||
ONBOARDING_FIREFOX_EXTENSION_INSTALL_LINK:
|
||||
firefoxExtension.length > 0 ? firefoxExtension : null,
|
||||
ONBOARDING_PROXY_INSTALL_LINK:
|
||||
proxyInstallLink.length > 0 ? proxyInstallLink : null,
|
||||
DMCA_EMAIL: getKey("DMCA_EMAIL"),
|
||||
ONBOARDING_CHROME_EXTENSION_INSTALL_LINK: getKey(
|
||||
"ONBOARDING_CHROME_EXTENSION_INSTALL_LINK",
|
||||
),
|
||||
ONBOARDING_FIREFOX_EXTENSION_INSTALL_LINK: getKey(
|
||||
"ONBOARDING_FIREFOX_EXTENSION_INSTALL_LINK",
|
||||
),
|
||||
ONBOARDING_PROXY_INSTALL_LINK: getKey("ONBOARDING_PROXY_INSTALL_LINK"),
|
||||
BACKEND_URL: getKey("BACKEND_URL", BACKEND_URL),
|
||||
TMDB_READ_API_KEY: getKey("TMDB_READ_API_KEY"),
|
||||
PROXY_URLS: getKey("CORS_PROXY_URL")
|
||||
PROXY_URLS: getKey("CORS_PROXY_URL", "")
|
||||
.split(",")
|
||||
.map((v) => v.trim()),
|
||||
.map((v) => v.trim())
|
||||
.filter((v) => v.length > 0),
|
||||
NORMAL_ROUTER: getKey("NORMAL_ROUTER", "false") === "true",
|
||||
HAS_ONBOARDING: getKey("HAS_ONBOARDING", "false") === "true",
|
||||
TURNSTILE_KEY: turnstileKey.length > 0 ? turnstileKey : null,
|
||||
TURNSTILE_KEY: getKey("TURNSTILE_KEY"),
|
||||
DISALLOWED_IDS: getKey("DISALLOWED_IDS", "")
|
||||
.split(",")
|
||||
.map((v) => v.trim())
|
||||
|
Loading…
Reference in New Issue
Block a user