Fix NPE when opening DevTools

This commit is contained in:
Vendicated 2022-08-29 18:45:58 +02:00
parent 876e622f4f
commit 1709ab61ef
No known key found for this signature in database
GPG key ID: EC781ADFB93EFFA3
4 changed files with 17 additions and 7 deletions

View file

@ -4,16 +4,19 @@ import { readdirSync } from "fs";
import { performance } from "perf_hooks";
/**
* @type {esbuild.WatchMode}
* @type {esbuild.WatchMode|false}
*/
const watch = {
const watch = process.argv.includes("--watch") ? {
onRebuild: (err) => {
if (err) console.error("Build Error", err.message);
else console.log("Rebuilt!");
}
};
} : false;
// https://github.com/evanw/esbuild/issues/619#issuecomment-751995294
/**
* @type {esbuild.Plugin}
*/
const makeAllPackagesExternalPlugin = {
name: 'make-all-packages-external',
setup(build) {
@ -22,6 +25,9 @@ const makeAllPackagesExternalPlugin = {
},
};
/**
* @type {esbuild.Plugin}
*/
const globPlugins = {
name: "glob-plugins",
setup: build => {

View file

@ -7,5 +7,5 @@ export default {
cb(css);
});
},
getQuickCss: () => ipcRenderer.invoke(IPC_GET_QUICK_CSS)
getQuickCss: () => ipcRenderer.invoke(IPC_GET_QUICK_CSS) as Promise<string>
};

6
src/globals.d.ts vendored
View file

@ -1,7 +1,5 @@
import TVencordNative from "./VencordNative";
declare global {
export var VencordNative: typeof TVencordNative;
export var VencordNative: typeof import("./VencordNative").default;
export var appSettings: {
set(setting: string, v: any): void;
};
@ -12,3 +10,5 @@ declare global {
};
}
}
export { };

View file

@ -20,6 +20,10 @@ class BrowserWindow extends electron.BrowserWindow {
}
}
Object.assign(BrowserWindow, electron.BrowserWindow);
// esbuild may rename our BrowserWindow, which leads to it being excluded
// from getFocusedWindow(), so this is necessary
// https://github.com/discord/electron/blob/13-x-y/lib/browser/api/browser-window.ts#L60-L62
Object.defineProperty(BrowserWindow, "name", { value: "BrowserWindow", configurable: true });
// Replace electrons exports with our custom BrowserWindow
const electronPath = require.resolve("electron");