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

Function runCanActivate

packages/router/src/operators/check_guards.ts:149–172  ·  view source on GitHub ↗
(
  futureRSS: RouterStateSnapshot,
  futureARS: ActivatedRouteSnapshot,
)

Source from the content-addressed store, hash-verified

147}
148
149function runCanActivate(
150 futureRSS: RouterStateSnapshot,
151 futureARS: ActivatedRouteSnapshot,
152): Observable<GuardResult> {
153 const canActivate = futureARS.routeConfig ? futureARS.routeConfig.canActivate : null;
154 if (!canActivate || canActivate.length === 0) return of(true);
155
156 const canActivateObservables = canActivate.map((canActivate) => {
157 return defer(() => {
158 const closestInjector = futureARS._environmentInjector;
159 const guard = getTokenOrFunctionIdentity<CanActivate>(
160 canActivate as ProviderToken<CanActivate>,
161 closestInjector,
162 );
163 const guardVal = isCanActivate(guard)
164 ? guard.canActivate(futureARS, futureRSS)
165 : runInInjectionContext(closestInjector, () =>
166 (guard as CanActivateFn)(futureARS, futureRSS),
167 );
168 return wrapIntoObservable(guardVal).pipe(first());
169 });
170 });
171 return of(canActivateObservables).pipe(prioritizedGuardValue());
172}
173
174function runCanActivateChild(
175 futureRSS: RouterStateSnapshot,

Callers 1

runCanActivateChecksFunction · 0.85

Calls 9

isCanActivateFunction · 0.90
runInInjectionContextFunction · 0.90
wrapIntoObservableFunction · 0.90
prioritizedGuardValueFunction · 0.90
deferFunction · 0.85
firstFunction · 0.85
mapMethod · 0.80
canActivateMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…