From 8fcbcb5792a75fdd22461634484ad75b152545a0 Mon Sep 17 00:00:00 2001 From: PalmDevs Date: Tue, 15 Apr 2025 15:04:35 +0700 Subject: [PATCH] feat(lib/modules/metro/subscriptions): clean up specific subscriptions once called --- lib/modules/src/metro/subscriptions/_internal.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/modules/src/metro/subscriptions/_internal.ts b/lib/modules/src/metro/subscriptions/_internal.ts index 488f127..5a15279 100644 --- a/lib/modules/src/metro/subscriptions/_internal.ts +++ b/lib/modules/src/metro/subscriptions/_internal.ts @@ -12,13 +12,19 @@ export const _importedPath = new Set( export function _executeRequiredSubscription() { const id = _mInitingId for (const cb of _reqAll) cb(id) - if (_reqSpecific.has(id)) for (const cb of _reqSpecific.get(id)!) cb(id) + if (_reqSpecific.has(id)) { + for (const cb of _reqSpecific.get(id)!) cb(id) + _reqSpecific.delete(id) + } } export function _executeInitializedSubscription(exports: Metro.ModuleExports) { const id = _mInitingId for (const cb of _initAll) cb(id, exports) - if (_initSpecific.has(id)) for (const cb of _initSpecific.get(id)!) cb(id, exports) + if (_initSpecific.has(id)) { + for (const cb of _initSpecific.get(id)!) cb(id, exports) + _initSpecific.delete(id) + } } export function _executeImportedPathSubscription(path: string) {