feat: complete stage 1 infrastructure

This commit is contained in:
Jason
2025-10-16 10:00:22 +08:00
parent 95e2d84655
commit cc0b7053aa
31 changed files with 2350 additions and 9 deletions
+75
View File
@@ -0,0 +1,75 @@
import { invoke } from "@tauri-apps/api/core";
import type { Provider } from "@/types";
import type { AppType } from "./types";
export interface ProviderSortUpdate {
id: string;
sortIndex: number;
}
export const providersApi = {
async getAll(appType: AppType): Promise<Record<string, Provider>> {
return await invoke("get_providers", { app_type: appType, app: appType });
},
async getCurrent(appType: AppType): Promise<string> {
return await invoke("get_current_provider", {
app_type: appType,
app: appType,
});
},
async add(provider: Provider, appType: AppType): Promise<boolean> {
return await invoke("add_provider", {
provider,
app_type: appType,
app: appType,
});
},
async update(provider: Provider, appType: AppType): Promise<boolean> {
return await invoke("update_provider", {
provider,
app_type: appType,
app: appType,
});
},
async delete(id: string, appType: AppType): Promise<boolean> {
return await invoke("delete_provider", {
id,
app_type: appType,
app: appType,
});
},
async switch(id: string, appType: AppType): Promise<boolean> {
return await invoke("switch_provider", {
id,
app_type: appType,
app: appType,
});
},
async importDefault(appType: AppType): Promise<boolean> {
return await invoke("import_default_config", {
app_type: appType,
app: appType,
});
},
async updateTrayMenu(): Promise<boolean> {
return await invoke("update_tray_menu");
},
async updateSortOrder(
updates: ProviderSortUpdate[],
appType: AppType
): Promise<boolean> {
return await invoke("update_providers_sort_order", {
updates,
app_type: appType,
app: appType,
});
},
};