mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-07-28 08:44:41 +08:00
refactor(common-config): consolidate hooks and migrate Gemini to ENV format
- Delete redundant wrapper hooks (useCommonConfigSnippet, useGeminiCommonConfig) - Change Gemini common config from JSON to ENV format (.env style) - Add backend validation with forbidden keys filtering (GEMINI_API_KEY, GOOGLE_GEMINI_BASE_URL) - Fix localStorage migration to skip empty parsed snippets - Add error handling for silent JSON parse failures - Clean up debug logs and unused types
This commit is contained in:
@@ -249,7 +249,7 @@ export const codexAdapter: CommonConfigAdapter<string, string> = {
|
||||
// ============================================================================
|
||||
|
||||
const GEMINI_LEGACY_STORAGE_KEY = "cc-switch:gemini-common-config-snippet";
|
||||
const GEMINI_DEFAULT_SNIPPET = "{}";
|
||||
const GEMINI_DEFAULT_SNIPPET = "";
|
||||
|
||||
export interface GeminiAdapterOptions {
|
||||
/** 字符串转对象 */
|
||||
@@ -306,7 +306,9 @@ export function createGeminiAdapter(
|
||||
) {
|
||||
return t("geminiConfig.commonConfigInvalidValues");
|
||||
}
|
||||
return t("geminiConfig.invalidJsonFormat");
|
||||
return t("geminiConfig.invalidEnvFormat", {
|
||||
defaultValue: "配置格式错误",
|
||||
});
|
||||
}
|
||||
|
||||
if (Object.keys(result.env).length === 0) {
|
||||
|
||||
@@ -234,7 +234,9 @@ export function useCommonConfigBase<TConfig, TFinal>({
|
||||
);
|
||||
if (legacySnippet && legacySnippet.trim()) {
|
||||
const parsed = adapter.parseSnippet(legacySnippet);
|
||||
if (!parsed.error) {
|
||||
// 只有在解析成功且有有效内容时才迁移
|
||||
// 这避免了将 "{}" 这样的空 JSON 迁移为"有效配置"
|
||||
if (!parsed.error && adapter.hasValidContent(legacySnippet)) {
|
||||
await configApi.setCommonConfigSnippet(
|
||||
adapter.appKey,
|
||||
legacySnippet,
|
||||
@@ -246,6 +248,9 @@ export function useCommonConfigBase<TConfig, TFinal>({
|
||||
console.log(
|
||||
`[迁移] ${adapter.appKey} 通用配置已从 localStorage 迁移到数据库`,
|
||||
);
|
||||
} else {
|
||||
// 解析失败或无有效内容,清理 localStorage 不迁移
|
||||
window.localStorage.removeItem(adapter.legacyStorageKey);
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
|
||||
Reference in New Issue
Block a user