import type { ImportMetaEnv } from 'env'

/**
 * Get the environment variable
 *
 * @param key the env variable key
 * @param defaultValue a default value if applicable
 * @returns the environment value or undefined if not found
 */
export function getEnv(key: keyof ImportMetaEnv, defaultValue: string): string
export function getEnv(key: keyof ImportMetaEnv, defaultValue?: string | undefined): string | undefined
export function getEnv(key: keyof ImportMetaEnv, defaultValue?: string | undefined): string | undefined {
	// get the env variable through Astro > NodeJS > input
	const res = import.meta.env[key] ?? process.env[key] ?? defaultValue

	return res ?? undefined
}
