feature/IO-3725-RPS-Changes - Upgrade Electron / Related Electron packages / Sentry For Electron
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
const { randomUUID } = require("crypto");
|
||||
const Store = require("electron-store");
|
||||
|
||||
const store = new Store({
|
||||
let store;
|
||||
|
||||
const storeOptions = {
|
||||
defaults: {
|
||||
deviceId: randomUUID(),
|
||||
showChangeLog: true,
|
||||
@@ -11,10 +12,38 @@ const store = new Store({
|
||||
runWatcherOnStartup: true,
|
||||
polling: {
|
||||
enabled: false,
|
||||
pollingInterval: 30000,
|
||||
pollingInterval: 30000
|
||||
},
|
||||
ins_rule_set: null
|
||||
},
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
exports.store = store;
|
||||
async function initializeStore() {
|
||||
if (!store) {
|
||||
const { default: Store } = await import("electron-store");
|
||||
store = new Store(storeOptions);
|
||||
}
|
||||
|
||||
return store;
|
||||
}
|
||||
|
||||
function getStore() {
|
||||
if (!store) {
|
||||
throw new Error("Electron store was accessed before initialization.");
|
||||
}
|
||||
|
||||
return store;
|
||||
}
|
||||
|
||||
const storeProxy = new Proxy(
|
||||
{},
|
||||
{
|
||||
get(_target, prop) {
|
||||
const value = getStore()[prop];
|
||||
return typeof value === "function" ? value.bind(getStore()) : value;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
exports.initializeStore = initializeStore;
|
||||
exports.store = storeProxy;
|
||||
|
||||
@@ -1,20 +1,26 @@
|
||||
const path = require("path");
|
||||
const { app, BrowserWindow, Tray, Menu, ipcMain, dialog, shell, globalShortcut } = require("electron");
|
||||
const isDev = require("electron-is-dev");
|
||||
const { default: ipcTypes } = require("../src/ipc.types.commonjs");
|
||||
const { store } = require("./electron-store");
|
||||
const { initializeStore, store } = require("./electron-store");
|
||||
const { autoUpdater } = require("electron-updater");
|
||||
const log = require("electron-log");
|
||||
const contextMenu = require("electron-context-menu");
|
||||
const Sentry = require("@sentry/electron/main");
|
||||
|
||||
const isDev = !app.isPackaged;
|
||||
const enableDevTools = isDev || process.env.ELECTRON_ENABLE_DEVTOOLS === "1";
|
||||
const openDevToolsOnStart = enableDevTools && process.env.ELECTRON_OPEN_DEVTOOLS === "1";
|
||||
const installReactDevTools = process.env.ELECTRON_INSTALL_REACT_DEVTOOLS === "1";
|
||||
|
||||
//const Nucleus = require("nucleus-nodejs");
|
||||
require("./ipc-main-handler");
|
||||
require("./analytics");
|
||||
let ipcHandlersInitialized = false;
|
||||
|
||||
function initializeIpcHandlers() {
|
||||
if (ipcHandlersInitialized) return;
|
||||
|
||||
require("./ipc-main-handler");
|
||||
require("./analytics");
|
||||
ipcHandlersInitialized = true;
|
||||
}
|
||||
|
||||
Sentry.init({
|
||||
dsn: "https://9840e0f304124299e379d9347e12d2e6@o492140.ingest.sentry.io/4505728058523648",
|
||||
@@ -132,7 +138,6 @@ var menu = Menu.buildFromTemplate([
|
||||
let mainWindow;
|
||||
let noticeWindow;
|
||||
let tray = null;
|
||||
contextMenu({ showInspectElement: enableDevTools });
|
||||
|
||||
function createWindow() {
|
||||
// Create the browser window.
|
||||
@@ -228,7 +233,13 @@ function createWindow() {
|
||||
// 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(() => {
|
||||
app.whenReady().then(async () => {
|
||||
await initializeStore();
|
||||
initializeIpcHandlers();
|
||||
|
||||
const { default: contextMenu } = await import("electron-context-menu");
|
||||
contextMenu({ showInspectElement: enableDevTools });
|
||||
|
||||
createWindow();
|
||||
|
||||
if (isDev) {
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
const path = require("path");
|
||||
const fs = require("fs");
|
||||
const { app } = require("electron");
|
||||
|
||||
// Loader entrypoint:
|
||||
// - In dev: run the original source (electron/main-src.js)
|
||||
// - In packaged/prod: run the bundled/minified output (dist-electron/main.cjs)
|
||||
|
||||
const distMain = path.join(__dirname, "..", "dist-electron", "main.cjs");
|
||||
const useDist = !require("electron-is-dev") && fs.existsSync(distMain);
|
||||
const useDist = app.isPackaged && fs.existsSync(distMain);
|
||||
|
||||
require(useDist ? distMain : "./main-src");
|
||||
|
||||
@@ -6,6 +6,7 @@ const fs = require("fs");
|
||||
// - In packaged/prod: run the bundled/minified output (dist-electron/preload.cjs)
|
||||
|
||||
const distPreload = path.join(__dirname, "..", "dist-electron", "preload.cjs");
|
||||
const useDist = !require("electron-is-dev") && fs.existsSync(distPreload);
|
||||
const isDev = process.defaultApp || /[\\/]electron(?:\.exe)?$/i.test(process.execPath);
|
||||
const useDist = !isDev && fs.existsSync(distPreload);
|
||||
|
||||
require(useDist ? distPreload : "./preload-src");
|
||||
|
||||
Reference in New Issue
Block a user