mirror of
https://wget.la/https://github.com/Wxw-Gu/WechatExplorer
synced 2026-10-05 21:05:39 +08:00
42 lines
1.8 KiB
TypeScript
42 lines
1.8 KiB
TypeScript
import { ipcMain } from 'electron'
|
|
import { exportGroupReport } from './group-report-service'
|
|
import { reportTemplateService } from './report-template-service'
|
|
import { reportTemplateMarketService } from './report-template-market-service'
|
|
import type { GroupReportExportRequest } from '../shared/group-report'
|
|
|
|
let registered = false
|
|
|
|
export function registerReportTemplateIpc(): void {
|
|
if (registered) return
|
|
registered = true
|
|
ipcMain.handle('report-template:list', () => reportTemplateService.list())
|
|
ipcMain.handle('report-template:install', async (_, packagePath: string) => {
|
|
try {
|
|
return { success: true, template: await reportTemplateService.install(packagePath) }
|
|
} catch (error) {
|
|
return {
|
|
success: false,
|
|
code: error instanceof Error && 'code' in error ? String((error as { code?: unknown }).code) : 'install_failed',
|
|
error: error instanceof Error ? error.message : String(error)
|
|
}
|
|
}
|
|
})
|
|
ipcMain.handle('report-template:uninstall', async (_, id: string, version: string) => {
|
|
try {
|
|
await reportTemplateService.uninstall(id, version)
|
|
return { success: true }
|
|
} catch (error) {
|
|
return {
|
|
success: false,
|
|
code: error instanceof Error && 'code' in error ? String((error as { code?: unknown }).code) : 'uninstall_failed',
|
|
error: error instanceof Error ? error.message : String(error)
|
|
}
|
|
}
|
|
})
|
|
ipcMain.handle('report-template-market:list', () => reportTemplateMarketService.listCatalog())
|
|
ipcMain.handle('report-template-market:install', (_, id: string, version: string) =>
|
|
reportTemplateMarketService.installFromCatalog(String(id || ''), String(version || ''))
|
|
)
|
|
ipcMain.handle('report:export', (_, request: GroupReportExportRequest) => exportGroupReport(request))
|
|
}
|