From f05885e5591c26d5404b74f1ac9efdc89b9946a1 Mon Sep 17 00:00:00 2001 From: PalmDevs Date: Fri, 11 Jul 2025 15:59:35 +0700 Subject: [PATCH] feat(lib/modules/metro): blacklist primitives and empty objects for finders --- lib/modules/src/metro/_internal.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/modules/src/metro/_internal.ts b/lib/modules/src/metro/_internal.ts index 6442a59..bcffdc5 100644 --- a/lib/modules/src/metro/_internal.ts +++ b/lib/modules/src/metro/_internal.ts @@ -106,7 +106,16 @@ function handleFactoryCall( ) const { exports } = moduleObject - if (exports != null) mInitialized.add(mInitializingId) + + // Blacklist exports that: + // - are primitives (https://developer.mozilla.org/en-US/docs/Glossary/Primitive) + // - are empty objects + if (exports instanceof Object) { + if (exports.__proto__ === Object.prototype) { + if (Reflect.ownKeys(exports).length) + mInitialized.add(mInitializingId!) + } else mInitialized.add(mInitializingId) + } executeInitializeSubscriptions(mInitializingId, exports) } finally {