Files
cc-switch/src/lib/api/env.ts
T
冰子 b9412ece0b 添加Claude和Codex环境变量检查 (#242)
* 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.
2025-11-18 23:44:44 +08:00

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;
}