From 262d4d52b57e35fda1f57fee511e9f9ae1d42ca8 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Fri, 13 Oct 2023 09:14:24 +0200 Subject: [PATCH] refactor(core): tree shake depepdency interceptor token (#52199) We have the `DEFER_BLOCK_DEPENDENCY_INTERCEPTOR` DI token that we use in tests to intercept the dependency loading function from deferred blocks, however we were referencing it in a way that caused it to be retained in production bundles as well. These changes guard the call site with `ngDevMode` since the token is only used for testing. PR Close #52199 --- packages/core/src/defer/instructions.ts | 19 +++++++++++-------- .../bundling/defer/bundle.golden_symbols.json | 3 --- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/core/src/defer/instructions.ts b/packages/core/src/defer/instructions.ts index f00599c3240..f6d4d27564f 100644 --- a/packages/core/src/defer/instructions.ts +++ b/packages/core/src/defer/instructions.ts @@ -39,8 +39,7 @@ import {addDepsToRegistry, assertDeferredDependenciesLoaded, getLDeferBlockDetai * implementation. */ export const DEFER_BLOCK_DEPENDENCY_INTERCEPTOR = - new InjectionToken( - ngDevMode ? 'DEFER_BLOCK_DEPENDENCY_INTERCEPTOR' : ''); + new InjectionToken('DEFER_BLOCK_DEPENDENCY_INTERCEPTOR'); /** * **INTERNAL**, token used for configuring defer block behavior. @@ -611,13 +610,17 @@ export function triggerResourceLoading(tDetails: TDeferBlockDetails, lView: LVie // Switch from NOT_STARTED -> IN_PROGRESS state. tDetails.loadingState = DeferDependenciesLoadingState.IN_PROGRESS; - // Check if dependency function interceptor is configured. - const deferDependencyInterceptor = - injector.get(DEFER_BLOCK_DEPENDENCY_INTERCEPTOR, null, {optional: true}); + let dependenciesFn = tDetails.dependencyResolverFn; - const dependenciesFn = deferDependencyInterceptor ? - deferDependencyInterceptor.intercept(tDetails.dependencyResolverFn) : - tDetails.dependencyResolverFn; + if (ngDevMode) { + // Check if dependency function interceptor is configured. + const deferDependencyInterceptor = + injector.get(DEFER_BLOCK_DEPENDENCY_INTERCEPTOR, null, {optional: true}); + + if (deferDependencyInterceptor) { + dependenciesFn = deferDependencyInterceptor.intercept(dependenciesFn); + } + } // The `dependenciesFn` might be `null` when all dependencies within // a given defer block were eagerly references elsewhere in a file, diff --git a/packages/core/test/bundling/defer/bundle.golden_symbols.json b/packages/core/test/bundling/defer/bundle.golden_symbols.json index f4fbeb43590..e6873d8530a 100644 --- a/packages/core/test/bundling/defer/bundle.golden_symbols.json +++ b/packages/core/test/bundling/defer/bundle.golden_symbols.json @@ -104,9 +104,6 @@ { "name": "DEFER_BLOCK_CONFIG" }, - { - "name": "DEFER_BLOCK_DEPENDENCY_INTERCEPTOR" - }, { "name": "DEFER_BLOCK_STATE" },