chore: Electron 主进程脚手架
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
8fe2d2bb88
commit
68f90f4e4c
@@ -0,0 +1,34 @@
|
||||
const { app, BrowserWindow } = require("electron");
|
||||
const path = require("path");
|
||||
|
||||
const isDev = process.env.NODE_ENV === "development";
|
||||
|
||||
function createWindow() {
|
||||
const win = new BrowserWindow({
|
||||
width: 1200,
|
||||
height: 800,
|
||||
webPreferences: {
|
||||
preload: path.join(__dirname, "preload.js"),
|
||||
contextIsolation: true,
|
||||
nodeIntegration: false,
|
||||
},
|
||||
});
|
||||
|
||||
if (isDev) {
|
||||
win.loadURL("http://localhost:5173");
|
||||
win.webContents.openDevTools();
|
||||
} else {
|
||||
win.loadFile(path.join(__dirname, "../renderer/dist/index.html"));
|
||||
}
|
||||
}
|
||||
|
||||
app.whenReady().then(() => {
|
||||
require("./db/init");
|
||||
require("./ipc/templateIpc");
|
||||
require("./ipc/generateIpc");
|
||||
createWindow();
|
||||
});
|
||||
|
||||
app.on("window-all-closed", () => {
|
||||
if (process.platform !== "darwin") app.quit();
|
||||
});
|
||||
@@ -0,0 +1,17 @@
|
||||
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),
|
||||
});
|
||||
Reference in New Issue
Block a user