44 lines
1.4 KiB
TypeScript
44 lines
1.4 KiB
TypeScript
import { ipcMain } from 'electron'
|
|||
|
|
import { getProjectRoot, listInstalledModules, listModules, scaffoldApplicationModule, setModule } from '../auroraEngine'
|
||
|
|
import { runCommandStreamed } from '../commandRunner'
|
||
|
|
|
||
|
|
export function registerModulesIpc(): void {
|
||
|
|
ipcMain.handle('modules:listRegistry', () => listModules())
|
||
|
|
ipcMain.handle('modules:listInstalled', (_event, name: string) => listInstalledModules(name))
|
||
|
|
ipcMain.handle(
|
||
|
|
'modules:install',
|
||
|
|
async (
|
||
|
|
event,
|
||
|
|
operationId: string,
|
||
|
|
name: string,
|
||
|
|
moduleId: string,
|
||
|
|
settings: Record<string, string | number | boolean>
|
||
|
|
) => {
|
||
|
|
await setModule(name, moduleId, true, settings)
|
||
|
|
await scaffoldApplicationModule(name, moduleId)
|
||
|
|
const root = await getProjectRoot(name)
|
||
|
|
return runCommandStreamed(
|
||
|
|
operationId,
|
||
|
|
'docker',
|
||
|
|
['compose', '-f', `${root}/.aurora/compose.yaml`, 'up', '-d', '--remove-orphans'],
|
||
|
|
event.sender,
|
||
|
|
{ cwd: root }
|
||
|
|
)
|
||
|
|
}
|
||
|
|
)
|
||
|
|
ipcMain.handle(
|
||
|
|
'modules:remove',
|
||
|
|
async (event, operationId: string, name: string, moduleId: string) => {
|
||
|
|
await setModule(name, moduleId, false)
|
||
|
|
const root = await getProjectRoot(name)
|
||
|
|
return runCommandStreamed(
|
||
|
|
operationId,
|
||
|
|
'docker',
|
||
|
|
['compose', '-f', `${root}/.aurora/compose.yaml`, 'up', '-d', '--remove-orphans'],
|
||
|
|
event.sender,
|
||
|
|
{ cwd: root }
|
||
|
|
)
|
||
|
|
}
|
||
|
|
)
|
||
|
|
}
|