mirror of
https://github.com/DayuanJiang/next-ai-draw-io.git
synced 2026-10-13 04:59:51 +08:00
- delete electron/settings, the settings preload and window, the config-presets IPC channels, the Configuration menu and the preset watcher in scripts/electron-dev.mjs; config-manager.ts keeps only the user locale (still read from config-presets.json so the saved language survives) - electron/main/env-loader.ts parses .env with dotenv instead of a hand-written parser; electron:compile bundles dependencies - drop the unreachable development branches in port-manager.ts and next-server.ts, the duplicated locale normalisation in menu-i18n.ts, the unused electronAPI members, resources/entitlements.mac.plist - scripts/copy-dereferenced.cjs shared by afterPack and prepare-electron-build - CI: delete ci.yml, move type check and concurrency into test.yml, Node 24 everywhere, docker-build only on main - remove unused dependencies (@xmldom/xmldom, remark-gfm, @anthropic-ai/tokenizer, @testing-library/user-event, concurrently, wait-on, eslint, eslint-config-next, @vitest/coverage-v8, shx), .eslintrc.json and the vitest coverage block
48 lines
1.4 KiB
TypeScript
48 lines
1.4 KiB
TypeScript
import fs from "node:fs"
|
|
import path from "node:path"
|
|
import { parse } from "dotenv"
|
|
import { app } from "electron"
|
|
|
|
/**
|
|
* Load environment variables from .env file
|
|
* Searches multiple locations in priority order
|
|
*/
|
|
export function loadEnvFile(): void {
|
|
const possiblePaths = [
|
|
// Next to the executable (for portable installations)
|
|
path.join(path.dirname(app.getPath("exe")), ".env"),
|
|
// User data directory (persists across updates)
|
|
path.join(app.getPath("userData"), ".env"),
|
|
// Development: project root
|
|
path.join(app.getAppPath(), ".env.local"),
|
|
path.join(app.getAppPath(), ".env"),
|
|
]
|
|
|
|
for (const envPath of possiblePaths) {
|
|
if (fs.existsSync(envPath)) {
|
|
console.log(`Loading environment from: ${envPath}`)
|
|
loadEnvFromFile(envPath)
|
|
return
|
|
}
|
|
}
|
|
|
|
console.log("No .env file found, using system environment variables")
|
|
}
|
|
|
|
/**
|
|
* Parse and load environment variables from a file
|
|
*/
|
|
function loadEnvFromFile(filePath: string): void {
|
|
try {
|
|
const parsed = parse(fs.readFileSync(filePath, "utf-8"))
|
|
for (const [key, value] of Object.entries(parsed)) {
|
|
// Don't override existing environment variables
|
|
if (!(key in process.env)) {
|
|
process.env[key] = value
|
|
}
|
|
}
|
|
} catch (error) {
|
|
console.error(`Failed to load env file ${filePath}:`, error)
|
|
}
|
|
}
|