31 lines
923 B
TypeScript
31 lines
923 B
TypeScript
import { BrowserWindow, ipcMain } from "electron"
|
|
import type { CliLogEntry, CliProcessManager, CliStatus } from "./process-manager"
|
|
|
|
export function setupCliIPC(mainWindow: BrowserWindow, cliManager: CliProcessManager) {
|
|
cliManager.on("status", (status: CliStatus) => {
|
|
if (!mainWindow.isDestroyed()) {
|
|
mainWindow.webContents.send("cli:status", status)
|
|
}
|
|
})
|
|
|
|
cliManager.on("ready", (status: CliStatus) => {
|
|
if (!mainWindow.isDestroyed()) {
|
|
mainWindow.webContents.send("cli:ready", status)
|
|
}
|
|
})
|
|
|
|
cliManager.on("log", (entry: CliLogEntry) => {
|
|
if (!mainWindow.isDestroyed()) {
|
|
mainWindow.webContents.send("cli:log", entry)
|
|
}
|
|
})
|
|
|
|
cliManager.on("error", (error: Error) => {
|
|
if (!mainWindow.isDestroyed()) {
|
|
mainWindow.webContents.send("cli:error", { message: error.message })
|
|
}
|
|
})
|
|
|
|
ipcMain.handle("cli:getStatus", async () => cliManager.getStatus())
|
|
}
|