This commit is contained in:
2026-03-12 15:53:37 +08:00
parent 51ccd265ba
commit 4ae451fc73
6 changed files with 60 additions and 43 deletions

View File

@@ -2,32 +2,37 @@ import { contextBridge, ipcRenderer } from "electron";
import { electronAPI } from "@electron-toolkit/preload";
import type { SelfAPI } from "./index.d";
// Generic invoke helper - reduces boilerplate
const invoke = <T>(channel: string, arg?: unknown): Promise<T> =>
ipcRenderer.invoke(channel, arg);
// Custom APIs for renderer - bridges to IPC handlers
const api: SelfAPI = {
// Platform detection
platform: process.platform,
// ==================== Domain Management ====================
getDomains: () => ipcRenderer.invoke("getDomains"),
createDomain: (params) => ipcRenderer.invoke("createDomain", params),
updateDomain: (params) => ipcRenderer.invoke("updateDomain", params),
deleteDomain: (id) => ipcRenderer.invoke("deleteDomain", id),
testConnection: (id) => ipcRenderer.invoke("testConnection", id),
testDomainConnection: (params) => ipcRenderer.invoke("testDomainConnection", params),
// Domain management
getDomains: () => invoke("getDomains"),
createDomain: (params) => invoke("createDomain", params),
updateDomain: (params) => invoke("updateDomain", params),
deleteDomain: (id) => invoke("deleteDomain", id),
testConnection: (id) => invoke("testConnection", id),
testDomainConnection: (params) => invoke("testDomainConnection", params),
// ==================== Browse ====================
getApps: (params) => ipcRenderer.invoke("getApps", params),
// Browse
getApps: (params) => invoke("getApps", params),
getAppDetail: (params) => invoke("getAppDetail", params),
getFileContent: (params) => invoke("getFileContent", params),
// ==================== Deploy ====================
deploy: (params) => ipcRenderer.invoke("deploy", params),
// Deploy
deploy: (params) => invoke("deploy", params),
// ==================== Download ====================
download: (params) => ipcRenderer.invoke("download", params),
// Download
download: (params) => invoke("download", params),
// ==================== Version Management ====================
getVersions: (params) => ipcRenderer.invoke("getVersions", params),
deleteVersion: (id) => ipcRenderer.invoke("deleteVersion", id),
rollback: (params) => ipcRenderer.invoke("rollback", params),
// Version management
getVersions: (params) => invoke("getVersions", params),
deleteVersion: (id) => invoke("deleteVersion", id),
rollback: (params) => invoke("rollback", params),
};
// Use `contextBridge` APIs to expose Electron APIs to