From 1709ab61ef2138d350b3d45a3eba0d94d5adf0a1 Mon Sep 17 00:00:00 2001 From: Vendicated Date: Mon, 29 Aug 2022 18:45:58 +0200 Subject: [PATCH] Fix NPE when opening DevTools --- build.mjs | 12 +++++++++--- src/VencordNative.ts | 2 +- src/globals.d.ts | 6 +++--- src/patcher.ts | 4 ++++ 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/build.mjs b/build.mjs index 237b2198..6459c631 100755 --- a/build.mjs +++ b/build.mjs @@ -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 => { diff --git a/src/VencordNative.ts b/src/VencordNative.ts index 1798cbf3..0fc5d16d 100644 --- a/src/VencordNative.ts +++ b/src/VencordNative.ts @@ -7,5 +7,5 @@ export default { cb(css); }); }, - getQuickCss: () => ipcRenderer.invoke(IPC_GET_QUICK_CSS) + getQuickCss: () => ipcRenderer.invoke(IPC_GET_QUICK_CSS) as Promise }; \ No newline at end of file diff --git a/src/globals.d.ts b/src/globals.d.ts index 610466a6..ca43786a 100644 --- a/src/globals.d.ts +++ b/src/globals.d.ts @@ -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 { }; \ No newline at end of file diff --git a/src/patcher.ts b/src/patcher.ts index 9fe3dd2e..e991377d 100644 --- a/src/patcher.ts +++ b/src/patcher.ts @@ -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");