返回 oh-my-ppt
template-handlers.ts
根目录 / src / main / templates / template-handlers.ts
1 import { ipcMain } from 'electron'
2 import type { IpcContext } from '../ipc/context'
3 import {
4 createEditableSessionFromTemplate,
5 createSessionFromTemplate,
6 createTemplateFromSession,
7 deleteTemplate,
8 getTemplate,
9 importPptxAsTemplate,
10 listTemplates,
11 updateTemplateMetadata
12 } from './template-service'
13
14 export function registerTemplateHandlers(ctx: IpcContext): void {
15 ipcMain.handle('templates:list', async () => listTemplates())
16
17 ipcMain.handle('templates:get', async (_event, templateId: string) => getTemplate(templateId))
18
19 ipcMain.handle('templates:createFromSession', async (_event, payload: unknown) =>
20 createTemplateFromSession(ctx, payload)
21 )
22
23 ipcMain.handle('templates:createSession', async (_event, payload: unknown) =>
24 createSessionFromTemplate(ctx, payload)
25 )
26
27 ipcMain.handle('templates:createEditableSession', async (_event, payload: unknown) =>
28 createEditableSessionFromTemplate(ctx, payload)
29 )
30
31 ipcMain.handle('templates:importPptx', async (event, payload: unknown) =>
32 importPptxAsTemplate(ctx, payload, (progress) => {
33 event.sender.send('templates:importPptx:progress', progress)
34 })
35 )
36
37 ipcMain.handle('templates:updateMetadata', async (_event, payload: unknown) =>
38 updateTemplateMetadata(payload)
39 )
40
41 ipcMain.handle('templates:delete', async (_event, templateId: string) => deleteTemplate(templateId))
42 }
43
43 lines TYPESCRIPT