litser
/
main.js
115 строк · 2.8 Кб
1'use strict'
2
3if (require.main !== module) {4require('update-electron-app')({5logger: require('electron-log')6})7}
8const path = require('path')9const { app, BrowserWindow, ipcMain, globalShortcut } = require('electron')10
11// const log = require('electron-log');
12
13const pjson = require('./package.json')14
15// log.transports.console.level = 'info'
16// log.transports.file.level = 'info'
17// log.info('App starting...')
18
19const debug = /--debug/.test(process.argv[2])20
21if (process.mas) app.setName(pjson.name)22
23let mainWindow = null24
25/* const sendStatusToWindow = (text, ver) => {
26log.info(text)
27mainWindow?.webContents.send('message', text, ver)
28} */
29
30const registerGlobalShortcuts = () => {31globalShortcut.register('CommandOrControl+Shift+L', () => {32mainWindow?.webContents.send('show-server-log')33})34}
35
36process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = 'true'37
38function createWindow () {39const windowOptions = {40minWidth: 960,41minHeight: 665,42center: true,43title: pjson.name,44resizable: true,45// transparent: true,46frame: false,47hasShadow: false,48titleBarStyle: 'hidden',49icon: path.join(__dirname, '/dist/public/img/icon.ico'),50webPreferences: {51nodeIntegration: true,52nodeIntegrationInWorker: true,53contextIsolation: false,54enableRemoteModule: true,55v8CacheOptions: 'code',56// webSecurity: false,57preload: path.join(__dirname, '/dist/electron/preload.js')58}59}60
61if (process.platform === 'linux') {62windowOptions.icon = path.join(__dirname, '/dist/public/img/icon.ico')63}64
65mainWindow = new BrowserWindow(windowOptions)66mainWindow.setMenuBarVisibility(false)67mainWindow.setProgressBar(0)68// mainWindow.webContents.openDevTools()69let promise = mainWindow.loadURL(path.join(__dirname, '/src/dev/index.dev.html'))70
71// log.info(mainWindow);72
73if (debug) {74mainWindow.webContents.openDevTools()75mainWindow.maximize()76require('devtron').install()77}78
79mainWindow.on('closed', () => {80mainWindow = null81})82
83ipcMain.on('minimize-window', () => {84mainWindow.minimize()85})86
87ipcMain.on('maximize-window', () => {88mainWindow.maximize()89})90
91ipcMain.on('restore-window', () => {92mainWindow.restore()93})94
95ipcMain.on('close-window', () => {96mainWindow.close()97})98}
99
100app.whenReady().then(() => {101registerGlobalShortcuts()102createWindow()103
104app.on('activate', () => {105if (BrowserWindow.getAllWindows().length === 0) {106createWindow()107}108})109})110
111app.on('window-all-closed', () => {112if (process.platform !== 'darwin') {113app.quit()114}115})116