refactor(router): remove circular dep in router navigation code (#59083)

Use `import type` to break phantom circular imports for the router
navigation implementation.

PR Close #59083
This commit is contained in:
Alex Rickabaugh 2024-12-05 13:24:33 -08:00
parent 9d73fe605e
commit 1cd0eb83d2
6 changed files with 14 additions and 32 deletions

View file

@ -1,18 +1 @@
[
[
"packages/router/src/navigation_transition.ts",
"packages/router/src/operators/activate_routes.ts"
],
[
"packages/router/src/navigation_transition.ts",
"packages/router/src/operators/check_guards.ts"
],
[
"packages/router/src/navigation_transition.ts",
"packages/router/src/operators/recognize.ts"
],
[
"packages/router/src/navigation_transition.ts",
"packages/router/src/operators/resolve_data.ts"
]
]
[]

View file

@ -81,7 +81,7 @@ import {
RouterState,
RouterStateSnapshot,
} from './router_state';
import {Params} from './shared';
import type {Params} from './shared';
import {UrlHandlingStrategy} from './url_handling_strategy';
import {isUrlTree, UrlSerializer, UrlTree} from './url_tree';
import {Checks, getAllRouteGuards} from './utils/preactivation';

View file

@ -10,11 +10,10 @@ import {MonoTypeOperatorFunction} from 'rxjs';
import {map} from 'rxjs/operators';
import {ActivationEnd, ChildActivationEnd, Event} from '../events';
import {NavigationTransition} from '../navigation_transition';
import {DetachedRouteHandleInternal, RouteReuseStrategy} from '../route_reuse_strategy';
import {ChildrenOutletContexts} from '../router_outlet_context';
import type {NavigationTransition} from '../navigation_transition';
import type {DetachedRouteHandleInternal, RouteReuseStrategy} from '../route_reuse_strategy';
import type {ChildrenOutletContexts} from '../router_outlet_context';
import {ActivatedRoute, advanceActivatedRoute, RouterState} from '../router_state';
import {getClosestRouteInjector} from '../utils/config';
import {nodeChildrenAsMap, TreeNode} from '../utils/tree';
let warnedAboutUnsupportedInputBinding = false;

View file

@ -29,10 +29,10 @@ import {
CanMatchFn,
Route,
} from '../models';
import {navigationCancelingError, redirectingNavigationError} from '../navigation_canceling_error';
import {NavigationTransition} from '../navigation_transition';
import {ActivatedRouteSnapshot, RouterStateSnapshot} from '../router_state';
import {isUrlTree, UrlSegment, UrlSerializer, UrlTree} from '../url_tree';
import {redirectingNavigationError} from '../navigation_canceling_error';
import type {NavigationTransition} from '../navigation_transition';
import type {ActivatedRouteSnapshot, RouterStateSnapshot} from '../router_state';
import {UrlSegment, UrlSerializer} from '../url_tree';
import {wrapIntoObservable} from '../utils/collection';
import {getClosestRouteInjector} from '../utils/config';
import {

View file

@ -10,11 +10,11 @@ import {EnvironmentInjector, Type} from '@angular/core';
import {MonoTypeOperatorFunction} from 'rxjs';
import {map, mergeMap} from 'rxjs/operators';
import {Route} from '../models';
import {NavigationTransition} from '../navigation_transition';
import type {Route} from '../models';
import type {NavigationTransition} from '../navigation_transition';
import {recognize as recognizeFn} from '../recognize';
import {RouterConfigLoader} from '../router_config_loader';
import {UrlSerializer} from '../url_tree';
import type {RouterConfigLoader} from '../router_config_loader';
import type {UrlSerializer} from '../url_tree';
export function recognize(
injector: EnvironmentInjector,

View file

@ -11,7 +11,7 @@ import {EMPTY, from, MonoTypeOperatorFunction, Observable, of, throwError} from
import {catchError, concatMap, first, map, mapTo, mergeMap, takeLast, tap} from 'rxjs/operators';
import {RedirectCommand, ResolveData} from '../models';
import {NavigationTransition} from '../navigation_transition';
import type {NavigationTransition} from '../navigation_transition';
import {
ActivatedRouteSnapshot,
getInherited,