From 3da647154fd6315553b230fe6aa9ec8d305c411c Mon Sep 17 00:00:00 2001 From: PalmDevs Date: Wed, 25 Feb 2026 22:05:38 +0700 Subject: [PATCH] fix(lib/modules): warn bad `withDependencies` filters during construction time --- lib/modules/src/finders/filters/dynamic.ts | 24 ++++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/modules/src/finders/filters/dynamic.ts b/lib/modules/src/finders/filters/dynamic.ts index 82d4d66..5030dd4 100644 --- a/lib/modules/src/finders/filters/dynamic.ts +++ b/lib/modules/src/finders/filters/dynamic.ts @@ -22,9 +22,6 @@ export interface ComparableDependencyMap r?: number } -const __DEBUG_WARNED_BAD_BY_DEPENDENCIES_FILTERS__ = - new Set() - /** * Filter modules by their dependency map. * @@ -76,15 +73,25 @@ const __DEBUG_WARNED_BAD_BY_DEPENDENCIES_FILTERS__ = * ) * ``` */ -export const withDependencies = createFilterGenerator< - Parameters ->( +const withDependencies_ = createFilterGenerator>( ([deps], id) => depCompare(getModuleDependencies(id)!, deps, id, id), deps => `revenge.deps(${depGenFilterKey(deps)})`, FilterFlag.Dynamic, FilterScopes.Uninitialized | FilterScopes.Initialized, ) as WithDependencies +export const withDependencies = __DEV__ + ? (((deps: ComparableDependencyMap) => { + // Warn about using undefined in deps, which is likely a mistake + for (let i = 0; i < deps.length; i++) { + if (deps[i] === undefined) + DEBUG_warnBadWithDependenciesFilter(deps, i) + } + + return withDependencies_(deps) + }) as WithDependencies) + : withDependencies_ + withDependencies.loose = loose withDependencies.relative = relative @@ -179,11 +186,6 @@ function DEBUG_warnBadWithDependenciesFilter( deps: ComparableDependencyMap, index: number, ) { - // already warned - if (__DEBUG_WARNED_BAD_BY_DEPENDENCIES_FILTERS__.has(deps)) return - - __DEBUG_WARNED_BAD_BY_DEPENDENCIES_FILTERS__.add(deps) - nativeLoggingHook( `\u001b[33mBad withDependencies filter, undefined ID at index ${index} (if intentional, set to null): [${depGenFilterKey(deps)}]\n${getCurrentStack()}\u001b[0m`, 2,