From e6503f8beac5dca902be7a2e4501f489c402dc5d Mon Sep 17 00:00:00 2001 From: Alex Rickabaugh Date: Thu, 5 Dec 2024 13:11:03 -0800 Subject: [PATCH] refactor(core): remove circular dep in ComponentFactoryResolver (#59083) Use `import type` to break a phantom circular import in the runtime definition of `ComponentFactory` and `ComponentFactoryResolver`. PR Close #59083 --- goldens/circular-deps/packages.json | 5 ----- packages/core/src/linker/component_factory.ts | 12 ++++++------ .../core/src/linker/component_factory_resolver.ts | 2 +- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/goldens/circular-deps/packages.json b/goldens/circular-deps/packages.json index 3f359c5abc9..dd1e9b9eda7 100644 --- a/goldens/circular-deps/packages.json +++ b/goldens/circular-deps/packages.json @@ -1,9 +1,4 @@ [ - [ - "packages/core/src/linker/component_factory_resolver.ts", - "packages/core/src/linker/component_factory.ts", - "packages/core/src/linker/ng_module_factory.ts" - ], [ "packages/core/src/metadata/directives.ts", "packages/core/src/render3/jit/directive.ts" diff --git a/packages/core/src/linker/component_factory.ts b/packages/core/src/linker/component_factory.ts index c5d12702591..b3eae21cc7c 100644 --- a/packages/core/src/linker/component_factory.ts +++ b/packages/core/src/linker/component_factory.ts @@ -6,14 +6,14 @@ * found in the LICENSE file at https://angular.dev/license */ -import {ChangeDetectorRef} from '../change_detection/change_detection'; -import {Injector} from '../di/injector'; -import {EnvironmentInjector} from '../di/r3_injector'; +import type {ChangeDetectorRef} from '../change_detection/change_detection'; +import type {Injector} from '../di/injector'; +import type {EnvironmentInjector} from '../di/r3_injector'; import {Type} from '../interface/type'; -import {ElementRef} from './element_ref'; -import {NgModuleRef} from './ng_module_factory'; -import {ViewRef} from './view_ref'; +import type {ElementRef} from './element_ref'; +import type {NgModuleRef} from './ng_module_factory'; +import type {ViewRef} from './view_ref'; /** * Represents a component created by a `ComponentFactory`. diff --git a/packages/core/src/linker/component_factory_resolver.ts b/packages/core/src/linker/component_factory_resolver.ts index 20abce0b1e4..e3772a66c92 100644 --- a/packages/core/src/linker/component_factory_resolver.ts +++ b/packages/core/src/linker/component_factory_resolver.ts @@ -9,7 +9,7 @@ import {Type} from '../interface/type'; import {stringify} from '../util/stringify'; -import {ComponentFactory} from './component_factory'; +import type {ComponentFactory} from './component_factory'; class _NullComponentFactoryResolver implements ComponentFactoryResolver { resolveComponentFactory(component: {new (...args: any[]): T}): ComponentFactory {