mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-07-28 00:35:32 +08:00
e6654bd7f9
- Remove `is_proxy_target` field from Provider struct (Rust & TypeScript) - Remove related DAO methods: get_proxy_target_provider, set_proxy_target - Remove deprecated Tauri commands: get_proxy_targets, set_proxy_target - Add `is_available()` method to CircuitBreaker for availability checks without consuming HalfOpen probe permits (used in select_providers) - Keep `allow_request()` for actual request gating with permit tracking - Update stream_check to use failover_queue instead of is_proxy_target - Clean up commented-out reset circuit breaker button in ProviderActions - Remove unused useProxyTargets and useSetProxyTarget hooks
65 lines
1.8 KiB
TypeScript
65 lines
1.8 KiB
TypeScript
import { invoke } from "@tauri-apps/api/core";
|
|
import { listen, type UnlistenFn } from "@tauri-apps/api/event";
|
|
import type { Provider } from "@/types";
|
|
import type { AppId } from "./types";
|
|
|
|
export interface ProviderSortUpdate {
|
|
id: string;
|
|
sortIndex: number;
|
|
}
|
|
|
|
export interface ProviderSwitchEvent {
|
|
appType: AppId;
|
|
providerId: string;
|
|
}
|
|
|
|
export const providersApi = {
|
|
async getAll(appId: AppId): Promise<Record<string, Provider>> {
|
|
return await invoke("get_providers", { app: appId });
|
|
},
|
|
|
|
async getCurrent(appId: AppId): Promise<string> {
|
|
return await invoke("get_current_provider", { app: appId });
|
|
},
|
|
|
|
async add(provider: Provider, appId: AppId): Promise<boolean> {
|
|
return await invoke("add_provider", { provider, app: appId });
|
|
},
|
|
|
|
async update(provider: Provider, appId: AppId): Promise<boolean> {
|
|
return await invoke("update_provider", { provider, app: appId });
|
|
},
|
|
|
|
async delete(id: string, appId: AppId): Promise<boolean> {
|
|
return await invoke("delete_provider", { id, app: appId });
|
|
},
|
|
|
|
async switch(id: string, appId: AppId): Promise<boolean> {
|
|
return await invoke("switch_provider", { id, app: appId });
|
|
},
|
|
|
|
async importDefault(appId: AppId): Promise<boolean> {
|
|
return await invoke("import_default_config", { app: appId });
|
|
},
|
|
|
|
async updateTrayMenu(): Promise<boolean> {
|
|
return await invoke("update_tray_menu");
|
|
},
|
|
|
|
async updateSortOrder(
|
|
updates: ProviderSortUpdate[],
|
|
appId: AppId,
|
|
): Promise<boolean> {
|
|
return await invoke("update_providers_sort_order", { updates, app: appId });
|
|
},
|
|
|
|
async onSwitched(
|
|
handler: (event: ProviderSwitchEvent) => void,
|
|
): Promise<UnlistenFn> {
|
|
return await listen("provider-switched", (event) => {
|
|
const payload = event.payload as ProviderSwitchEvent;
|
|
handler(payload);
|
|
});
|
|
},
|
|
};
|