60 lines
1.7 KiB
JavaScript
60 lines
1.7 KiB
JavaScript
import {app} from "electron";
|
|
import path from "path";
|
|
import fs from "fs";
|
|
|
|
// Detect old install and delete it
|
|
const appPath = app.getAppPath(); // Should point to app or app.asar
|
|
const oldInstall = path.resolve(appPath, "..", "app");
|
|
if (fs.existsSync(oldInstall)) {
|
|
fs.rmdirSync(oldInstall, {recursive: true});
|
|
app.quit();
|
|
app.relaunch();
|
|
}
|
|
|
|
import ipc from "./modules/ipc";
|
|
import BrowserWindow from "./modules/browserwindow";
|
|
import CSP from "./modules/csp";
|
|
|
|
if (!process.argv.includes("--vanilla")) {
|
|
process.env.NODE_OPTIONS = "--no-force-async-hooks-checks";
|
|
app.commandLine.appendSwitch("no-force-async-hooks-checks");
|
|
|
|
// Patch and replace the built-in BrowserWindow
|
|
BrowserWindow.patchBrowserWindow();
|
|
|
|
// Register all IPC events
|
|
ipc.registerEvents();
|
|
|
|
|
|
// Remove CSP immediately on linux since they install to discord_desktop_core still
|
|
try {
|
|
CSP.remove();
|
|
}
|
|
catch (_) {
|
|
// Remove when everyone is moved to core
|
|
}
|
|
}
|
|
|
|
// Enable DevTools on Stable.
|
|
try {
|
|
let fakeAppSettings;
|
|
Object.defineProperty(global, "appSettings", {
|
|
get() {
|
|
return fakeAppSettings;
|
|
},
|
|
set(value) {
|
|
if (!value.hasOwnProperty("settings")) value.settings = {};
|
|
value.settings.DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING = true;
|
|
fakeAppSettings = value;
|
|
},
|
|
});
|
|
}
|
|
catch (_) {
|
|
// Remove when everyone is moved to core
|
|
}
|
|
|
|
// Needs to run this after Discord but before ready()
|
|
if (!process.argv.includes("--vanilla")) {
|
|
const BetterDiscord = require("./modules/betterdiscord").default;
|
|
BetterDiscord.disableMediaKeys();
|
|
} |