refactor: improve environment variable retrieval with optional return type

This commit is contained in:
hamster1963 2025-01-30 00:44:57 +08:00
parent c59b381a35
commit d775cde3ca

View File

@ -70,12 +70,13 @@ export type ClientEnvKey = `NEXT_PUBLIC_${keyof ClientEnvConfig}`
* @param key - Environment variable key * @param key - Environment variable key
* @returns Environment variable value * @returns Environment variable value
*/ */
export function getServerEnv<K extends keyof ServerEnvConfig>(key: K): string { export function getServerEnv<K extends keyof ServerEnvConfig>(key: K): string | undefined {
const value = process.env[key] const value = process.env[key]
if (!value) { if (!value) {
console.warn(`Environment variable ${key} is not set`) console.warn(`Environment variable ${key} is not set`)
return undefined
} }
return value || "" return value
} }
/** /**
@ -83,13 +84,14 @@ export function getServerEnv<K extends keyof ServerEnvConfig>(key: K): string {
* @param key - Environment variable key * @param key - Environment variable key
* @returns Environment variable value * @returns Environment variable value
*/ */
export function getClientEnv<K extends keyof ClientEnvConfig>(key: K): string { export function getClientEnv<K extends keyof ClientEnvConfig>(key: K): string | undefined {
const envKey = `NEXT_PUBLIC_${key}` const envKey = `NEXT_PUBLIC_${key}`
const value = env(envKey) const value = env(envKey)
if (!value) { if (!value) {
console.warn(`Environment variable ${envKey} is not set`) 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 } { export function getAllEnvConfig(): { server: ServerEnvConfig; client: ClientEnvConfig } {
return { return {
server: { server: {
NezhaBaseUrl: getServerEnv("NezhaBaseUrl"), NezhaBaseUrl: getServerEnv("NezhaBaseUrl") || "",
NezhaAuth: getServerEnv("NezhaAuth"), NezhaAuth: getServerEnv("NezhaAuth") || "",
DefaultLocale: getServerEnv("DefaultLocale"), DefaultLocale: getServerEnv("DefaultLocale") || "",
ForceShowAllServers: parseBoolean(getServerEnv("ForceShowAllServers")), ForceShowAllServers: parseBoolean(getServerEnv("ForceShowAllServers")),
SitePassword: getServerEnv("SitePassword"), SitePassword: getServerEnv("SitePassword") || "",
}, },
client: { client: {
NezhaFetchInterval: parseNumber(getClientEnv("NezhaFetchInterval"), 5000), NezhaFetchInterval: parseNumber(getClientEnv("NezhaFetchInterval"), 5000),
@ -133,10 +135,10 @@ export function getAllEnvConfig(): { server: ServerEnvConfig; client: ClientEnvC
ShowNetTransfer: parseBoolean(getClientEnv("ShowNetTransfer")), ShowNetTransfer: parseBoolean(getClientEnv("ShowNetTransfer")),
ForceUseSvgFlag: parseBoolean(getClientEnv("ForceUseSvgFlag")), ForceUseSvgFlag: parseBoolean(getClientEnv("ForceUseSvgFlag")),
FixedTopServerName: parseBoolean(getClientEnv("FixedTopServerName")), FixedTopServerName: parseBoolean(getClientEnv("FixedTopServerName")),
CustomLogo: getClientEnv("CustomLogo"), CustomLogo: getClientEnv("CustomLogo") || "",
CustomTitle: getClientEnv("CustomTitle"), CustomTitle: getClientEnv("CustomTitle") || "",
CustomDescription: getClientEnv("CustomDescription"), CustomDescription: getClientEnv("CustomDescription") || "",
Links: getClientEnv("Links"), Links: getClientEnv("Links") || "",
DisableIndex: parseBoolean(getClientEnv("DisableIndex")), DisableIndex: parseBoolean(getClientEnv("DisableIndex")),
ShowTagCount: parseBoolean(getClientEnv("ShowTagCount")), ShowTagCount: parseBoolean(getClientEnv("ShowTagCount")),
ShowIpInfo: parseBoolean(getClientEnv("ShowIpInfo")), ShowIpInfo: parseBoolean(getClientEnv("ShowIpInfo")),