fix(lib/modules/finders/wait): waitForModuleByImportedPath exports always being bad

This commit is contained in:
PalmDevs 2025-07-21 21:28:34 +07:00
parent 831636f14c
commit 30c919a8a9
No known key found for this signature in database
GPG key ID: 6FAE8F8677ACA8BA

View file

@ -2,6 +2,7 @@ import { mInitialized } from '../metro/patches'
import {
onAnyModuleInitialized,
onModuleFinishedImporting,
onModuleInitialized,
} from '../metro/subscriptions'
import { getInitializedModuleExports } from '../metro/utils'
import {
@ -151,21 +152,16 @@ export function waitForModuleByImportedPath<T = any>(
callback: WaitForModulesCallback<T>,
options?: BaseWaitForModulesOptions,
): WaitForModulesUnsubscribeFunction {
const unsub = onModuleFinishedImporting(
options?.all
? (id, cmpPath) => {
if (path === cmpPath) {
unsub()
callback(getInitializedModuleExports(id), id)
}
}
: (id, cmpPath) => {
if (mInitialized.has(id) && path === cmpPath) {
unsub()
callback(getInitializedModuleExports(id), id)
}
},
)
const unsub = onModuleFinishedImporting((id, cmpPath) => {
if (path === cmpPath) {
unsub()
// Module is not fully initialized yet, so we need to wait for it
onModuleInitialized(id, () => {
if (!options?.all || mInitialized.has(id))
callback(getInitializedModuleExports(id), id)
})
}
})
return unsub
}