From 50bb6d867ba1ef5cf4ddc3f8d6003c89246e678c Mon Sep 17 00:00:00 2001 From: Nuckyz <61953774+Nuckyz@users.noreply.github.com> Date: Sun, 18 Aug 2024 00:22:02 -0300 Subject: [PATCH] Add $$vencordPatchedSource --- src/webpack/patchWebpack.ts | 11 +++++++++++ src/webpack/wreq.d.ts | 5 ++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/webpack/patchWebpack.ts b/src/webpack/patchWebpack.ts index 9e4e809bf..8a5732621 100644 --- a/src/webpack/patchWebpack.ts +++ b/src/webpack/patchWebpack.ts @@ -209,6 +209,10 @@ function defineModulesFactoryGetter(id: PropertyKey, factory: WrappedModuleFacto if (factory.$$vencordOriginal != null) { factory.toString = newFactory.toString.bind(newFactory); factory.$$vencordOriginal = newFactory; + + if (factory.$$vencordPatchedSource != null) { + newFactory.$$vencordPatchedSource = newFactory.$$vencordPatchedSource; + } } else { factory = newFactory; } @@ -366,6 +370,13 @@ function wrapAndPatchFactory(id: PropertyKey, originalFactory: AnyModuleFactory) wrappedFactory.toString = originalFactory.toString.bind(originalFactory); wrappedFactory.$$vencordOriginal = originalFactory; + if (patchedFactory !== originalFactory) { + const patchedSource = String(patchedFactory); + + wrappedFactory.$$vencordPatchedSource = patchedSource; + originalFactory.$$vencordPatchedSource = patchedSource; + } + return wrappedFactory; } diff --git a/src/webpack/wreq.d.ts b/src/webpack/wreq.d.ts index f865c4b6d..943621fa1 100644 --- a/src/webpack/wreq.d.ts +++ b/src/webpack/wreq.d.ts @@ -193,10 +193,13 @@ export type AnyWebpackRequire = ((moduleId: PropertyKey) => ModuleExports) & Par }; /** exports can be anything, however initially it is always an empty object */ -export type AnyModuleFactory = (this: ModuleExports, module: Module, exports: ModuleExports, require: AnyWebpackRequire) => void; +export type AnyModuleFactory = ((this: ModuleExports, module: Module, exports: ModuleExports, require: AnyWebpackRequire) => void) & { + $$vencordPatchedSource?: string; +}; export type WrappedModuleFactory = AnyModuleFactory & { $$vencordOriginal?: AnyModuleFactory; + $$vencordPatchedSource?: string; }; export type WrappedModuleFactories = Record;