From 5488f5cecb0be8d1ffaefdd488b34e599ae198d9 Mon Sep 17 00:00:00 2001 From: Vendicated Date: Fri, 2 Sep 2022 05:11:45 +0200 Subject: [PATCH] Better patch errors --- src/utils/patchWebpack.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/utils/patchWebpack.ts b/src/utils/patchWebpack.ts index dffce867..9ae9fbf6 100644 --- a/src/utils/patchWebpack.ts +++ b/src/utils/patchWebpack.ts @@ -6,7 +6,6 @@ let webpackChunk: any[]; const logger = new Logger("WebpackInterceptor", "#8caaee"); - Object.defineProperty(window, WEBPACK_CHUNK, { get: () => webpackChunk, set: (v) => { @@ -87,12 +86,16 @@ function patchPush() { logger.warn(`Patch by ${patch.plugin} had no effect: ${replacement.match}`); logger.debug("Function Source:\n", code); } else { - const newMod = (0, eval)(`// Webpack Module ${id} - Patched by ${[...patchedBy].join(", ")}\n${newCode}\n//# sourceURL=WebpackModule${id}`); code = newCode; - mod = newMod; + mod = (0, eval)(`// Webpack Module ${id} - Patched by ${[...patchedBy].join(", ")}\n${newCode}\n//# sourceURL=WebpackModule${id}`); } } catch (err) { + // TODO - More meaningful errors. This probably means moving away from string.replace + // in favour of manual matching. Then cut out the context and log some sort of + // diff logger.error("Failed to apply patch of", patch.plugin, err); + logger.debug("Original Source\n", lastCode); + logger.debug("Patched Source\n", code); code = lastCode; mod = lastMod; patchedBy.delete(patch.plugin);