( futureRSS: RouterStateSnapshot, futureARS: ActivatedRouteSnapshot, )
| 147 | } |
| 148 | |
| 149 | function 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 | |
| 174 | function runCanActivateChild( |
| 175 | futureRSS: RouterStateSnapshot, |
no test coverage detected
searching dependent graphs…