MCPcopy
hub / github.com/angular/angular / shouldRunGuardsAndResolvers

Function shouldRunGuardsAndResolvers

packages/router/src/utils/preactivation.ts:176–206  ·  view source on GitHub ↗
(
  curr: ActivatedRouteSnapshot,
  future: ActivatedRouteSnapshot,
  mode: RunGuardsAndResolvers | undefined,
)

Source from the content-addressed store, hash-verified

174}
175
176function shouldRunGuardsAndResolvers(
177 curr: ActivatedRouteSnapshot,
178 future: ActivatedRouteSnapshot,
179 mode: RunGuardsAndResolvers | undefined,
180): boolean {
181 if (typeof mode === 'function') {
182 return runInInjectionContext(future._environmentInjector, () => mode(curr, future));
183 }
184 switch (mode) {
185 case 'pathParamsChange':
186 return !equalPath(curr.url, future.url);
187
188 case 'pathParamsOrQueryParamsChange':
189 return (
190 !equalPath(curr.url, future.url) || !shallowEqual(curr.queryParams, future.queryParams)
191 );
192
193 case 'always':
194 return true;
195
196 case 'paramsOrQueryParamsChange':
197 return (
198 !equalParamsAndUrlSegments(curr, future) ||
199 !shallowEqual(curr.queryParams, future.queryParams)
200 );
201
202 case 'paramsChange':
203 default:
204 return !equalParamsAndUrlSegments(curr, future);
205 }
206}
207
208function deactivateRouteAndItsChildren(
209 route: TreeNode<ActivatedRouteSnapshot>,

Callers 1

getRouteGuardsFunction · 0.85

Calls 4

runInInjectionContextFunction · 0.90
equalPathFunction · 0.90
shallowEqualFunction · 0.90

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…