37 lines
1.8 KiB
TypeScript
37 lines
1.8 KiB
TypeScript
import { contextBridge, ipcRenderer } from "electron";
|
|
|
|
console.info("[spt-launcher] preload loaded");
|
|
|
|
contextBridge.exposeInMainWorld("sptLauncher", {
|
|
appName: "SPT Launcher",
|
|
checkServerHealth: () => ipcRenderer.invoke("spt:checkServerHealth"),
|
|
checkGitTools: () => ipcRenderer.invoke("spt:checkGitTools"),
|
|
getGitPaths: () => ipcRenderer.invoke("spt:getGitPaths"),
|
|
installGitTools: () => ipcRenderer.invoke("spt:installGitTools"),
|
|
getModVersionStatus: () => ipcRenderer.invoke("spt:getModVersionStatus"),
|
|
setLocalModVersion: (payload: { tag: string }) =>
|
|
ipcRenderer.invoke("spt:setLocalModVersion", payload),
|
|
runModSync: (payload: { targetDir: string; tag: string; cleanRepo?: boolean }) =>
|
|
ipcRenderer.invoke("spt:runModSync", payload),
|
|
getSptInstallInfo: () => ipcRenderer.invoke("spt:getSptInstallInfo"),
|
|
setSptInstallPath: (payload: { path: string; allowMissing?: boolean }) =>
|
|
ipcRenderer.invoke("spt:setSptInstallPath", payload),
|
|
pickSptInstallPath: () => ipcRenderer.invoke("spt:pickSptInstallPath"),
|
|
fetchProfile: (payload: { username: string }) =>
|
|
ipcRenderer.invoke("spt:fetchProfile", payload),
|
|
downloadProfile: (payload: { username: string }) =>
|
|
ipcRenderer.invoke("spt:downloadProfile", payload),
|
|
resetProfile: (payload: { username: string }) =>
|
|
ipcRenderer.invoke("spt:resetProfile", payload),
|
|
resumeSession: () => ipcRenderer.invoke("spt:resumeSession"),
|
|
clearSession: () => ipcRenderer.invoke("spt:clearSession"),
|
|
onModSyncProgress: (callback: (event: unknown, step: unknown) => void) => {
|
|
const subscription = (_event: unknown, step: unknown) =>
|
|
callback(_event, step);
|
|
ipcRenderer.on("spt:modSyncProgress", subscription);
|
|
return () => {
|
|
ipcRenderer.removeListener("spt:modSyncProgress", subscription);
|
|
};
|
|
},
|
|
});
|