require('update-electron-app')({ logger: require('electron-log') }) const path = require('path') const {app, BrowserWindow} = require('electron') const debug = /--debug/.test(process.argv[2]) if (process.mas) app.setName('Electron APIs') let mainWindow = null function initialize () { makeSingleInstance() function createWindow () { const windowOptions = { width: 1080, minWidth: 680, height: 840, title: app.name, webPreferences: { nodeIntegration: true, preload: path.join(__dirname, 'util', 'preload.js') }, } if (process.platform === 'linux') { windowOptions.icon = path.join(__dirname, '/assets/app-icon/png/512.png') } mainWindow = new BrowserWindow(windowOptions) mainWindow.loadURL(path.join('file://', __dirname, '/assets/pages/index.html')) // Launch fullscreen with DevTools open, usage: npm run debug if (debug) { mainWindow.webContents.openDevTools() mainWindow.maximize() require('devtron').install() } mainWindow.on('closed', () => { mainWindow = null }) } app.on('ready', () => { createWindow() }) app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit() } }) app.on('activate', () => { if (mainWindow === null) { createWindow() } }) } // Make this app a single instance app. // // The main window will be restored and focused instead of a second window // opened when a person attempts to launch a second instance. // // Returns true if the current version of the app should quit instead of // launching. function makeSingleInstance () { if (process.mas) return app.requestSingleInstanceLock() app.on('second-instance', () => { if (mainWindow) { if (mainWindow.isMinimized()) mainWindow.restore() mainWindow.focus() } }) } initialize()