-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.js
More file actions
76 lines (66 loc) · 2.05 KB
/
main.js
File metadata and controls
76 lines (66 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/**
* Module for Electron Main Process Management
*/
const { app, BrowserWindow } = require('electron');
const { createMainWindow } = require('./window/createMainWindow');
const { setupMainMenu } = require('./menu/menu');
const { registerIcpHandlers } = require('./ipc');
const dialogs = require('./services/dialogs');
const childRunner = require('./services/childRunner');
const { startAutoUpdate } = require('./services/updater');
// --- Single-instance lock (prevents second instance on Windows) ---
const gotLock = app.requestSingleInstanceLock();
if (!gotLock) {
app.quit();
} else {
app.on('second-instance', () => {
const win = BrowserWindow.getAllWindows()[0];
if (win) {
win.show();
win.focus();
}
});
}
// ENV for Hot Reloading in the development environment.
const env = process.env.NODE_ENV;
// If development environment
if (env === 'development') {
console.log('DEV');
try {
require('electron-reloader')(module, {
debug: true,
watchRenderer: true,
});
} catch (err) {
console.log('Error:', err);
}
}
let mainWindow;
/**
* This method will be called when Electron has finished
* initialization and is ready to create browser windows.
* Some APIs can only be used after this event occurs.
*/
app.whenReady().then(() => {
// Start auto updater
if (process.platform === 'win32' || 'darwin') {
startAutoUpdate(mainWindow);
}
// Build the Main Window
mainWindow = createMainWindow();
// Build the application menu.
setupMainMenu();
// Register IPC handlers
registerIcpHandlers({ dialogs, childRunner });
app.on('activate', () => {
// On macOS it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (BrowserWindow.getAllWindows().length === 0) createMainWindow();
});
});
// Handle window closing behavior
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});