From d775cde3ca27af6e51d78e84e7d15e11c2faf5d9 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Thu, 30 Jan 2025 00:44:57 +0800 Subject: [PATCH] refactor: improve environment variable retrieval with optional return type --- lib/env.ts | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/lib/env.ts b/lib/env.ts index 37d8be7..a53c4f9 100644 --- a/lib/env.ts +++ b/lib/env.ts @@ -70,12 +70,13 @@ export type ClientEnvKey = `NEXT_PUBLIC_${keyof ClientEnvConfig}` * @param key - Environment variable key * @returns Environment variable value */ -export function getServerEnv(key: K): string { +export function getServerEnv(key: K): string | undefined { const value = process.env[key] if (!value) { console.warn(`Environment variable ${key} is not set`) + return undefined } - return value || "" + return value } /** @@ -83,13 +84,14 @@ export function getServerEnv(key: K): string { * @param key - Environment variable key * @returns Environment variable value */ -export function getClientEnv(key: K): string { +export function getClientEnv(key: K): string | undefined { const envKey = `NEXT_PUBLIC_${key}` const value = env(envKey) if (!value) { console.warn(`Environment variable ${envKey} is not set`) + return undefined } - return value || "" + return value } /** @@ -119,11 +121,11 @@ export function parseNumber(value: string | undefined, defaultValue: number): nu export function getAllEnvConfig(): { server: ServerEnvConfig; client: ClientEnvConfig } { return { server: { - NezhaBaseUrl: getServerEnv("NezhaBaseUrl"), - NezhaAuth: getServerEnv("NezhaAuth"), - DefaultLocale: getServerEnv("DefaultLocale"), + NezhaBaseUrl: getServerEnv("NezhaBaseUrl") || "", + NezhaAuth: getServerEnv("NezhaAuth") || "", + DefaultLocale: getServerEnv("DefaultLocale") || "", ForceShowAllServers: parseBoolean(getServerEnv("ForceShowAllServers")), - SitePassword: getServerEnv("SitePassword"), + SitePassword: getServerEnv("SitePassword") || "", }, client: { NezhaFetchInterval: parseNumber(getClientEnv("NezhaFetchInterval"), 5000), @@ -133,10 +135,10 @@ export function getAllEnvConfig(): { server: ServerEnvConfig; client: ClientEnvC ShowNetTransfer: parseBoolean(getClientEnv("ShowNetTransfer")), ForceUseSvgFlag: parseBoolean(getClientEnv("ForceUseSvgFlag")), FixedTopServerName: parseBoolean(getClientEnv("FixedTopServerName")), - CustomLogo: getClientEnv("CustomLogo"), - CustomTitle: getClientEnv("CustomTitle"), - CustomDescription: getClientEnv("CustomDescription"), - Links: getClientEnv("Links"), + CustomLogo: getClientEnv("CustomLogo") || "", + CustomTitle: getClientEnv("CustomTitle") || "", + CustomDescription: getClientEnv("CustomDescription") || "", + Links: getClientEnv("Links") || "", DisableIndex: parseBoolean(getClientEnv("DisableIndex")), ShowTagCount: parseBoolean(getClientEnv("ShowTagCount")), ShowIpInfo: parseBoolean(getClientEnv("ShowIpInfo")),