mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-06-16 13:34:04 +08:00
b9412ece0b
* feat(env): add environment variable conflict detection and management 实现了系统环境变量冲突检测与管理功能: 核心功能: - 自动检测会影响 Claude/Codex 的系统环境变量 - 支持 Windows 注册表和 Unix shell 配置文件检测 - 提供可视化的环境变量冲突警告横幅 - 支持批量选择和删除环境变量 - 删除前自动备份,支持后续恢复 技术实现: - Rust 后端: 跨平台环境变量检测与管理 - React 前端: EnvWarningBanner 组件交互界面 - 国际化支持: 中英文界面 - 类型安全: 完整的 TypeScript 类型定义 * refactor(env): remove unused imports and function Remove unused HashMap and PathBuf imports, and delete the unused get_source_description function to clean up the code.
61 lines
1.5 KiB
TypeScript
61 lines
1.5 KiB
TypeScript
import { invoke } from "@tauri-apps/api/core";
|
|
import type { EnvConflict, BackupInfo } from "@/types/env";
|
|
|
|
/**
|
|
* 环境变量管理 API
|
|
*/
|
|
|
|
/**
|
|
* 检查指定应用的环境变量冲突
|
|
* @param appType 应用类型 ("claude" | "codex" | "gemini")
|
|
* @returns 环境变量冲突列表
|
|
*/
|
|
export async function checkEnvConflicts(
|
|
appType: string,
|
|
): Promise<EnvConflict[]> {
|
|
return invoke<EnvConflict[]>("check_env_conflicts", { app: appType });
|
|
}
|
|
|
|
/**
|
|
* 删除指定的环境变量 (会自动备份)
|
|
* @param conflicts 要删除的环境变量冲突列表
|
|
* @returns 备份信息
|
|
*/
|
|
export async function deleteEnvVars(
|
|
conflicts: EnvConflict[],
|
|
): Promise<BackupInfo> {
|
|
return invoke<BackupInfo>("delete_env_vars", { conflicts });
|
|
}
|
|
|
|
/**
|
|
* 从备份文件恢复环境变量
|
|
* @param backupPath 备份文件路径
|
|
*/
|
|
export async function restoreEnvBackup(backupPath: string): Promise<void> {
|
|
return invoke<void>("restore_env_backup", { backupPath });
|
|
}
|
|
|
|
/**
|
|
* 检查所有应用的环境变量冲突
|
|
* @returns 按应用类型分组的环境变量冲突
|
|
*/
|
|
export async function checkAllEnvConflicts(): Promise<
|
|
Record<string, EnvConflict[]>
|
|
> {
|
|
const apps = ["claude", "codex", "gemini"];
|
|
const results: Record<string, EnvConflict[]> = {};
|
|
|
|
await Promise.all(
|
|
apps.map(async (app) => {
|
|
try {
|
|
results[app] = await checkEnvConflicts(app);
|
|
} catch (error) {
|
|
console.error(`检查 ${app} 环境变量失败:`, error);
|
|
results[app] = [];
|
|
}
|
|
}),
|
|
);
|
|
|
|
return results;
|
|
}
|