统一供应商处理逻辑:默认供应商与普通供应商一致处理

- 移除默认供应商在切换时的特殊逻辑
- 默认供应商现在也创建独立配置文件 settings-默认.json
- 移除删除时对默认供应商的特殊保护
- 所有供应商现在都遵循相同的文件管理规则
This commit is contained in:
farion1231
2025-08-07 21:56:30 +08:00
parent 5be45e269c
commit 45c75e826a

View File

@@ -88,12 +88,6 @@ export async function switchProvider(
// 确保目录存在
await fs.mkdir(configDir, { recursive: true });
// 特殊处理如果切换到默认供应商id="default"),直接使用现有的 settings.json
if (provider.id === "default") {
console.log(`切换到默认供应商,使用现有配置文件`);
return true;
}
const newSettingsPath = getProviderConfigPath(provider.id, provider.name);
// 检查目标配置文件是否存在
@@ -105,15 +99,13 @@ export async function switchProvider(
// 1. 如果当前存在settings.json先备份到当前供应商的配置文件
if (await fileExists(settingsPath)) {
if (currentProviderId && providers && providers[currentProviderId]) {
// 如果当前是默认供应商,不需要备份(因为 settings.json 就是它的配置)
if (currentProviderId !== "default") {
const currentProvider = providers[currentProviderId];
const currentProviderPath = getProviderConfigPath(
currentProviderId,
currentProvider.name
);
await fs.rename(settingsPath, currentProviderPath);
}
const currentProvider = providers[currentProviderId];
const currentProviderPath = getProviderConfigPath(
currentProviderId,
currentProvider.name
);
await fs.rename(settingsPath, currentProviderPath);
console.log(`已备份当前供应商配置: ${currentProvider.name}`);
} else {
// 如果没有当前供应商ID创建临时备份
const backupPath = path.join(
@@ -137,7 +129,7 @@ export async function switchProvider(
}
/**
* 导入当前配置为默认供应商(不生成独立配置文件)
* 导入当前配置为默认供应商
*/
export async function importCurrentConfigAsDefault(): Promise<{ success: boolean; provider?: Provider }> {
try {
@@ -161,7 +153,13 @@ export async function importCurrentConfigAsDefault(): Promise<{ success: boolean
updatedAt: Date.now(),
};
console.log(`已导入当前配置为默认供应商(不生成独立文件)`);
// 保存默认供应商的配置到独立文件
const saveSuccess = await saveProviderConfig(provider);
if (!saveSuccess) {
return { success: false };
}
console.log(`已导入当前配置为默认供应商配置文件settings-默认.json`);
return { success: true, provider };
} catch (error: any) {
console.error("导入默认配置失败:", error);
@@ -177,12 +175,6 @@ export async function deleteProviderConfig(
providerName?: string
): Promise<boolean> {
try {
// 默认供应商没有独立配置文件,直接返回成功
if (providerId === "default") {
console.log("默认供应商无独立配置文件,删除完成");
return true;
}
const providerConfigPath = getProviderConfigPath(providerId, providerName);
if (await fileExists(providerConfigPath)) {