const { app, BrowserWindow, ipcMain } = require("electron"); const path = require("node:path"); const { scanUsage } = require("../lib/tokenUsage.cjs"); let mainWindow; function createWindow() { mainWindow = new BrowserWindow({ width: 1440, height: 980, minWidth: 1180, minHeight: 820, title: "TokenLens", backgroundColor: "#08111d", titleBarStyle: "hiddenInset", trafficLightPosition: { x: 20, y: 20 }, webPreferences: { preload: path.join(__dirname, "preload.cjs"), contextIsolation: true, nodeIntegration: false } }); const devServer = process.env.TOKENLENS_DEV_SERVER; if (devServer) { mainWindow.loadURL(devServer); } else { mainWindow.loadFile(path.join(__dirname, "../../dist/index.html")); } } ipcMain.handle("usage:scan", async () => { return scanUsage(); }); app.whenReady().then(createWindow); app.on("window-all-closed", () => { if (process.platform !== "darwin") app.quit(); }); app.on("activate", () => { if (BrowserWindow.getAllWindows().length === 0) createWindow(); });