import fs from 'node:fs'
import path from 'node:path'

/**
 * 載入專案根目錄 .env（獨立 tsx 腳本不會像 Next.js 自動讀取）。
 * 已存在的 process.env 不會被覆寫。
 */
export function loadEnvFile(filename = '.env'): void {
    const envPath = path.join(process.cwd(), filename)
    if (!fs.existsSync(envPath)) return

    const text = fs.readFileSync(envPath, 'utf8')
    for (const line of text.split(/\r?\n/)) {
        const trimmed = line.trim()
        if (!trimmed || trimmed.startsWith('#')) continue

        const eq = trimmed.indexOf('=')
        if (eq <= 0) continue

        const key = trimmed.slice(0, eq).trim()
        let value = trimmed.slice(eq + 1).trim()

        if (
            (value.startsWith('"') && value.endsWith('"')) ||
            (value.startsWith("'") && value.endsWith("'"))
        ) {
            value = value.slice(1, -1)
        }

        if (process.env[key] === undefined) {
            process.env[key] = value
        }
    }
}
