From e2dcc294e9ac26059c01ece7b1313e7a2428e870 Mon Sep 17 00:00:00 2001 From: PalmDevs Date: Sun, 2 Aug 2026 16:18:36 +0700 Subject: [PATCH] fix(lib/modules/metro): handle all subscription tasks in runtime --- lib/modules/src/metro/patches.ts | 3 --- lib/modules/src/metro/runtime.ts | 7 ++++++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/modules/src/metro/patches.ts b/lib/modules/src/metro/patches.ts index 32e5bc6..58b4b7a 100644 --- a/lib/modules/src/metro/patches.ts +++ b/lib/modules/src/metro/patches.ts @@ -5,7 +5,6 @@ import { metroImportDefault, metroRequire, } from './runtime' -import { executeRequireSubscriptions } from './subscriptions/_internal' import type { Metro, RevengeMetro } from '../types' export let mInitializingId: Metro.ModuleID | undefined @@ -148,8 +147,6 @@ function handleFactoryCall( const prevId = mInitializingId mInitializingId = moduleObject.id! - executeRequireSubscriptions(mInitializingId) - try { factory( global, diff --git a/lib/modules/src/metro/runtime.ts b/lib/modules/src/metro/runtime.ts index 19e0a99..5e7cbf1 100644 --- a/lib/modules/src/metro/runtime.ts +++ b/lib/modules/src/metro/runtime.ts @@ -9,7 +9,10 @@ import { callNativeMethodSync } from '@revenge-mod/modules/native' import { getErrorStack } from '@revenge-mod/utils/error' import { FullVersion } from '~constants' import { loadModuleFromSegment, mInitializingId, mList } from './patches' -import { executeInitializeSubscriptions } from './subscriptions/_internal' +import { + executeInitializeSubscriptions, + executeRequireSubscriptions, +} from './subscriptions/_internal' import type { Metro } from '../types' export const mErrorChain: Metro.ModuleID[] = [] @@ -48,6 +51,8 @@ export const metroRequire = (moduleId => { id: moduleId, } + executeRequireSubscriptions(moduleId) + try { const { factory } = mod mod.factory = undefined