2021-04-03 05:16:23 +02:00
|
|
|
import path from "path";
|
|
|
|
import {app} from "electron";
|
|
|
|
import Module from "module";
|
2021-03-06 09:30:16 +01:00
|
|
|
|
|
|
|
import ipc from "./modules/ipc";
|
|
|
|
import BrowserWindow from "./modules/browserwindow";
|
|
|
|
import CSP from "./modules/csp";
|
|
|
|
|
2021-04-03 05:16:23 +02:00
|
|
|
if (!process.argv.includes("--vanilla")) {
|
|
|
|
process.env.NODE_OPTIONS = "--no-force-async-hooks-checks";
|
|
|
|
app.commandLine.appendSwitch("no-force-async-hooks-checks");
|
|
|
|
process.electronBinding("command_line").appendSwitch("no-force-async-hooks-checks");
|
2021-03-06 09:30:16 +01:00
|
|
|
|
|
|
|
|
2021-04-03 05:16:23 +02:00
|
|
|
// Patch and replace the built-in BrowserWindow
|
|
|
|
BrowserWindow.patchBrowserWindow();
|
2021-03-06 09:30:16 +01:00
|
|
|
|
2021-04-03 05:16:23 +02:00
|
|
|
// Register all IPC events
|
|
|
|
ipc.registerEvents();
|
2021-03-06 09:30:16 +01:00
|
|
|
|
|
|
|
|
2021-04-03 05:16:23 +02:00
|
|
|
// Remove CSP immediately on linux since they install to discord_desktop_core still
|
|
|
|
if (process.platform == "win32" || process.platform == "darwin") app.once("ready", CSP.remove);
|
|
|
|
else CSP.remove();
|
|
|
|
}
|
2021-03-06 09:30:16 +01:00
|
|
|
|
|
|
|
// Use Discord's info to run the app
|
|
|
|
if (process.platform == "win32" || process.platform == "darwin") {
|
2021-04-03 05:16:23 +02:00
|
|
|
const basePath = path.join(app.getAppPath(), "..", "app.asar");
|
2021-03-06 09:30:16 +01:00
|
|
|
const pkg = __non_webpack_require__(path.join(basePath, "package.json"));
|
2021-04-03 05:16:23 +02:00
|
|
|
app.setAppPath(basePath);
|
|
|
|
app.name = pkg.name;
|
2021-03-06 09:30:16 +01:00
|
|
|
Module._load(path.join(basePath, pkg.main), null, true);
|
|
|
|
}
|
|
|
|
|