UNPKG

builder-app-example

Version:

Electron Builder app example using wdio-electron-service

76 lines (64 loc) 1.81 kB
import { app, BrowserWindow, dialog, ipcMain, Menu } from 'electron'; import { join } from 'node:path'; function createWindow(): BrowserWindow { const mainWindow = new BrowserWindow({ width: 900, height: 700, webPreferences: { preload: join(__dirname, '../preload/index.cjs'), nodeIntegration: false, contextIsolation: true, }, }); // Enable devtools in development if (process.env.ELECTRON_RENDERER_URL) { mainWindow.webContents.openDevTools(); } // Load the renderer if (process.env.ELECTRON_RENDERER_URL) { mainWindow.loadURL(process.env.ELECTRON_RENDERER_URL); } else { mainWindow.loadFile(join(__dirname, '../renderer/index.html')); } // Create a simple menu for builder demo const template = [ { label: 'File', submenu: [ { label: 'About', click: () => { dialog.showMessageBox(mainWindow, { type: 'info', title: 'About Builder App', message: 'Built with Electron Builder & electron-vite', detail: 'This is a demo app for wdio-electron-service testing', }); }, }, { type: 'separator' }, { role: 'quit' as const }, ], }, ]; const menu = Menu.buildFromTemplate(template); Menu.setApplicationMenu(menu); return mainWindow; } // IPC handlers for testing ipcMain.handle('get-app-version', () => { return app.getVersion(); }); ipcMain.handle('get-app-name', () => { return app.getName(); }); // App event handlers app.whenReady().then(() => { createWindow(); app.on('activate', () => { if (BrowserWindow.getAllWindows().length === 0) createWindow(); }); }); app.on('window-all-closed', () => { if (process.platform !== 'darwin') app.quit(); });