From f9fb3bbba713613d156d1b7150f9551b373397e3 Mon Sep 17 00:00:00 2001 From: Vendicated Date: Sun, 21 Jul 2024 01:29:46 +0200 Subject: [PATCH] fix watch erroring when clean building --- scripts/build/common.mts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/scripts/build/common.mts b/scripts/build/common.mts index 054a56676..3bc3dc396 100644 --- a/scripts/build/common.mts +++ b/scripts/build/common.mts @@ -261,6 +261,20 @@ export const stylePlugin: Plugin = { } }; +let buildsFinished = Promise.resolve(); +const buildsFinishedPlugin: Plugin = { + name: "builds-finished-plugin", + setup({ onEnd }) { + if (!watch) return; + + let resolve: () => void; + const done = new Promise(r => resolve = r); + buildsFinished = buildsFinished.then(() => done); + + onEnd(() => resolve()); + }, +}; + export const commonOpts = { logLevel: "info", bundle: true, @@ -268,7 +282,7 @@ export const commonOpts = { sourcemap: watch ? "inline" : "external", legalComments: "linked", banner, - plugins: [fileUrlPlugin, gitHashPlugin, gitRemotePlugin, stylePlugin], + plugins: [fileUrlPlugin, gitHashPlugin, gitRemotePlugin, stylePlugin, buildsFinishedPlugin], external: ["~plugins", "~git-hash", "~git-remote", "/assets/*"], inject: ["./scripts/build/inject/react.mjs"], jsxFactory: "VencordCreateElement", @@ -286,6 +300,8 @@ export async function buildOrWatchAll() { if (watch) { const contexts = await Promise.all(builds.map(context)); await Promise.all(contexts.map(ctx => ctx.watch())); + + await buildsFinished; } else { try { await Promise.all(builds.map(build));