(
injector: EnvironmentInjector,
routes: Route[],
segmentGroup: UrlSegmentGroup,
segments: UrlSegment[],
outlet: string,
allowRedirects: boolean,
parentRoute: ActivatedRouteSnapshot,
)
| 233 | } |
| 234 | |
| 235 | async processSegment( |
| 236 | injector: EnvironmentInjector, |
| 237 | routes: Route[], |
| 238 | segmentGroup: UrlSegmentGroup, |
| 239 | segments: UrlSegment[], |
| 240 | outlet: string, |
| 241 | allowRedirects: boolean, |
| 242 | parentRoute: ActivatedRouteSnapshot, |
| 243 | ): Promise<TreeNode<ActivatedRouteSnapshot> | NoLeftoversInUrl> { |
| 244 | for (const r of routes) { |
| 245 | try { |
| 246 | return await this.processSegmentAgainstRoute( |
| 247 | r._injector ?? injector, |
| 248 | routes, |
| 249 | r, |
| 250 | segmentGroup, |
| 251 | segments, |
| 252 | outlet, |
| 253 | allowRedirects, |
| 254 | parentRoute, |
| 255 | ); |
| 256 | } catch (e: any) { |
| 257 | if (e instanceof NoMatch || isEmptyError(e)) { |
| 258 | continue; |
| 259 | } |
| 260 | throw e; |
| 261 | } |
| 262 | } |
| 263 | |
| 264 | if (noLeftoversInUrl(segmentGroup, segments, outlet)) { |
| 265 | return new NoLeftoversInUrl(); |
| 266 | } |
| 267 | throw new NoMatch(segmentGroup); |
| 268 | } |
| 269 | |
| 270 | async processSegmentAgainstRoute( |
| 271 | injector: EnvironmentInjector, |
no test coverage detected