- 修复 vite.config.mjs base 路径为 "./" 解决 file:// 协议加载失败 - 添加测试专用 mockDialog IPC 绕过原生文件选择对话框 - 重建 better-sqlite3 以适配 Electron 内嵌 Node ABI - 新增 6 个 E2E 测试:模板增删改、批量生成、文件解析 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
21 lines
977 B
JavaScript
21 lines
977 B
JavaScript
const { contextBridge, ipcRenderer } = require("electron");
|
|
|
|
contextBridge.exposeInMainWorld("api", {
|
|
listTemplates: () => ipcRenderer.invoke("template:list"),
|
|
saveTemplate: (data) => ipcRenderer.invoke("template:save", data),
|
|
updateTemplate: (id, data) => ipcRenderer.invoke("template:update", id, data),
|
|
deleteTemplate: (id) => ipcRenderer.invoke("template:delete", id),
|
|
parseTemplate: (filePath) => ipcRenderer.invoke("template:parse", filePath),
|
|
|
|
selectFile: (filters) => ipcRenderer.invoke("file:select", filters),
|
|
selectDirectory: () => ipcRenderer.invoke("file:selectDir"),
|
|
openDirectory: (dirPath) => ipcRenderer.invoke("file:openDir", dirPath),
|
|
copyFileToAppData: (srcPath, templateId) =>
|
|
ipcRenderer.invoke("file:copyToAppData", srcPath, templateId),
|
|
|
|
generate: (req) => ipcRenderer.invoke("generate:run", req),
|
|
|
|
// 仅测试环境使用:注入下一次对话框返回值
|
|
mockDialog: (p) => ipcRenderer.invoke("test:mockDialog", p),
|
|
});
|