MCPcopy Index your code
hub / github.com/angular/angular / createNode

Function createNode

packages/router/src/create_router_state.ts:35–68  ·  view source on GitHub ↗
(
  routeReuseStrategy: RouteReuseStrategy,
  curr: TreeNode<ActivatedRouteSnapshot>,
  prevState: TreeNode<ActivatedRoute> | undefined,
  newlyCreatedRoutes: Set<ActivatedRoute>,
)

Source from the content-addressed store, hash-verified

33}
34
35function createNode(
36 routeReuseStrategy: RouteReuseStrategy,
37 curr: TreeNode<ActivatedRouteSnapshot>,
38 prevState: TreeNode<ActivatedRoute> | undefined,
39 newlyCreatedRoutes: Set<ActivatedRoute>,
40): TreeNode<ActivatedRoute> {
41 // reuse an activated route that is currently displayed on the screen
42 if (prevState && routeReuseStrategy.shouldReuseRoute(curr.value, prevState.value.snapshot)) {
43 const value = prevState.value;
44 value._futureSnapshot = curr.value;
45 const children = createOrReuseChildren(routeReuseStrategy, curr, prevState, newlyCreatedRoutes);
46 return new TreeNode<ActivatedRoute>(value, children);
47 } else {
48 if (routeReuseStrategy.shouldAttach(curr.value)) {
49 // retrieve an activated route that is used to be displayed, but is not currently displayed
50 const detachedRouteHandle = routeReuseStrategy.retrieve(curr.value);
51 if (detachedRouteHandle !== null) {
52 const tree = (detachedRouteHandle as DetachedRouteHandleInternal).route;
53 tree.value._futureSnapshot = curr.value;
54 tree.children = curr.children.map((c) =>
55 createNode(routeReuseStrategy, c, undefined, newlyCreatedRoutes),
56 );
57 return tree;
58 }
59 }
60
61 const value = createActivatedRoute(curr.value);
62 newlyCreatedRoutes.add(value);
63 const children = curr.children.map((c) =>
64 createNode(routeReuseStrategy, c, undefined, newlyCreatedRoutes),
65 );
66 return new TreeNode<ActivatedRoute>(value, children);
67 }
68}
69
70function createOrReuseChildren(
71 routeReuseStrategy: RouteReuseStrategy,

Callers 2

createRouterStateFunction · 0.70
createOrReuseChildrenFunction · 0.70

Calls 7

createOrReuseChildrenFunction · 0.85
mapMethod · 0.80
createActivatedRouteFunction · 0.70
retrieveMethod · 0.65
addMethod · 0.65
shouldReuseRouteMethod · 0.45
shouldAttachMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…