( resolve: ResolveData, futureARS: ActivatedRouteSnapshot, futureRSS: RouterStateSnapshot, )
| 99 | } |
| 100 | |
| 101 | function resolveNode( |
| 102 | resolve: ResolveData, |
| 103 | futureARS: ActivatedRouteSnapshot, |
| 104 | futureRSS: RouterStateSnapshot, |
| 105 | ): Observable<any> { |
| 106 | const keys = getDataKeys(resolve); |
| 107 | if (keys.length === 0) { |
| 108 | return of({}); |
| 109 | } |
| 110 | const data: {[k: string | symbol]: any} = {}; |
| 111 | return from(keys).pipe( |
| 112 | mergeMap((key) => |
| 113 | getResolver(resolve[key], futureARS, futureRSS).pipe( |
| 114 | first(), |
| 115 | tap((value: any) => { |
| 116 | if (value instanceof RedirectCommand) { |
| 117 | throw redirectingNavigationError(new DefaultUrlSerializer(), value); |
| 118 | } |
| 119 | data[key] = value; |
| 120 | }), |
| 121 | ), |
| 122 | ), |
| 123 | takeLast(1), |
| 124 | map(() => data), |
| 125 | catchError((e: unknown) => (isEmptyError(e as Error) ? EMPTY : throwError(e))), |
| 126 | ); |
| 127 | } |
| 128 | |
| 129 | function getResolver( |
| 130 | injectionToken: ProviderToken<any> | Function, |
no test coverage detected
searching dependent graphs…