From d5a7ab6d7bf2aefacbe9aa3df3ab0175115c5eaa Mon Sep 17 00:00:00 2001 From: PalmDevs Date: Thu, 4 Sep 2025 01:23:20 +0700 Subject: [PATCH] fix(lib/modules/finders): early return if non-dynamic filter used on uninitialized module --- lib/modules/src/finders/_internal.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/modules/src/finders/_internal.ts b/lib/modules/src/finders/_internal.ts index 21a0d47..700d124 100644 --- a/lib/modules/src/finders/_internal.ts +++ b/lib/modules/src/finders/_internal.ts @@ -3,6 +3,7 @@ import { cacheFilterResultForId } from '../caches' import { metroRequire } from '../metro/custom' import { mInitialized } from '../metro/patches' import { isModuleExportBad } from '../metro/utils' +import { FilterFlag } from './filters' import type { If } from '@revenge-mod/utils/types' import type { Metro } from '../types' import type { Filter } from './filters' @@ -89,7 +90,9 @@ export function runFilter( options?: RunFilterOptions, ): FilterResultFlag | undefined { if (exports === undefined) { - if ((filter as Filter)(id)) { + if (filter.flags & FilterFlag.RequiresExports) return + + if (filter(id)) { if (options?.initialize ?? true) { const module = metroRequire(id) // Check if the required module is not blacklisted