Files
CC-Switch/src/lib/api/vscode.ts
T
Jason 8e4a0a1bbb refactor(types): rename AppType to AppId for semantic clarity
Rename `AppType` to `AppId` across the entire frontend codebase to better
reflect its purpose as an application identifier rather than a type category.
This aligns frontend naming with backend command parameter conventions.

Changes:
- Rename type `AppType` to `AppId` in src/lib/api/types.ts
- Remove `AppType` export from src/lib/api/index.ts
- Update all component props from `appType` to `appId` (43 files)
- Update all variable names from `appType` to `appId`
- Synchronize documentation (CHANGELOG, refactoring plans)
- Update test files and MSW mocks

BREAKING CHANGE: `AppType` type is no longer exported. Use `AppId` instead.
All component props have been renamed from `appType` to `appId`.
2025-10-30 14:59:15 +08:00

98 lines
2.1 KiB
TypeScript

import { invoke } from "@tauri-apps/api/core";
import type { CustomEndpoint } from "@/types";
import type { AppId } from "./types";
export interface EndpointLatencyResult {
url: string;
latency: number | null;
status?: number;
error?: string;
}
export const vscodeApi = {
async getLiveProviderSettings(appId: AppId) {
return await invoke("read_live_provider_settings", { app: appId });
},
async testApiEndpoints(
urls: string[],
options?: { timeoutSecs?: number },
): Promise<EndpointLatencyResult[]> {
return await invoke("test_api_endpoints", {
urls,
timeout_secs: options?.timeoutSecs,
});
},
async getCustomEndpoints(
appId: AppId,
providerId: string,
): Promise<CustomEndpoint[]> {
return await invoke("get_custom_endpoints", {
app: appId,
provider_id: providerId,
});
},
async addCustomEndpoint(
appId: AppId,
providerId: string,
url: string,
): Promise<void> {
await invoke("add_custom_endpoint", {
app: appId,
provider_id: providerId,
url,
});
},
async removeCustomEndpoint(
appId: AppId,
providerId: string,
url: string,
): Promise<void> {
await invoke("remove_custom_endpoint", {
app: appId,
provider_id: providerId,
url,
});
},
async updateEndpointLastUsed(
appId: AppId,
providerId: string,
url: string,
): Promise<void> {
await invoke("update_endpoint_last_used", {
app: appId,
provider_id: providerId,
url,
});
},
async exportConfigToFile(filePath: string) {
return await invoke("export_config_to_file", {
file_path: filePath,
filePath,
});
},
async importConfigFromFile(filePath: string) {
return await invoke("import_config_from_file", {
file_path: filePath,
filePath,
});
},
async saveFileDialog(defaultName: string): Promise<string | null> {
return await invoke("save_file_dialog", {
default_name: defaultName,
defaultName,
});
},
async openFileDialog(): Promise<string | null> {
return await invoke("open_file_dialog");
},
};