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;