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

Function runCanLoadGuards

packages/router/src/operators/check_guards.ts:230–252  ·  view source on GitHub ↗
(
  injector: EnvironmentInjector,
  route: Route,
  segments: UrlSegment[],
  urlSerializer: UrlSerializer,
  abortSignal?: AbortSignal,
)

Source from the content-addressed store, hash-verified

228}
229
230export function runCanLoadGuards(
231 injector: EnvironmentInjector,
232 route: Route,
233 segments: UrlSegment[],
234 urlSerializer: UrlSerializer,
235 abortSignal?: AbortSignal,
236): Observable<boolean> {
237 const canLoad = route.canLoad;
238 if (canLoad === undefined || canLoad.length === 0) {
239 return of(true);
240 }
241
242 const canLoadObservables = canLoad.map((injectionToken: any) => {
243 const guard = getTokenOrFunctionIdentity<any>(injectionToken, injector);
244 const guardVal = isCanLoad(guard)
245 ? guard.canLoad(route, segments)
246 : runInInjectionContext(injector, () => (guard as CanLoadFn)(route, segments));
247 const obs$ = wrapIntoObservable(guardVal);
248 return abortSignal ? obs$.pipe(takeUntilAbort(abortSignal)) : obs$;
249 });
250
251 return of(canLoadObservables).pipe(prioritizedGuardValue(), redirectIfUrlTree(urlSerializer));
252}
253
254function redirectIfUrlTree(urlSerializer: UrlSerializer): OperatorFunction<GuardResult, boolean> {
255 return pipe(

Callers 1

getChildConfigMethod · 0.90

Calls 9

isCanLoadFunction · 0.90
runInInjectionContextFunction · 0.90
wrapIntoObservableFunction · 0.90
takeUntilAbortFunction · 0.90
prioritizedGuardValueFunction · 0.90
redirectIfUrlTreeFunction · 0.85
mapMethod · 0.80
canLoadMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…