MCPcopy Create free account
hub / github.com/angular/angular / runSerially

Function runSerially

packages/router/test/integration/guards.spec.ts:2471–2485  ·  view source on GitHub ↗
(
        guards: CanActivateFn[] | CanActivateChildFn[],
      )

Source from the content-addressed store, hash-verified

2469
2470 it('can run functional guards serially', async () => {
2471 function runSerially(
2472 guards: CanActivateFn[] | CanActivateChildFn[],
2473 ): CanActivateFn | CanActivateChildFn {
2474 return (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {
2475 const injector = inject(EnvironmentInjector);
2476 const observables = guards.map((guard) => {
2477 const guardResult = injector.runInContext(() => guard(route, state));
2478 return wrapIntoObservable(guardResult).pipe(first());
2479 });
2480 return concat(...observables).pipe(
2481 takeWhile((v) => v === true),
2482 last(),
2483 );
2484 };
2485 }
2486
2487 const guardDone: string[] = [];
2488

Callers 1

guardsIntegrationSuiteFunction · 0.85

Calls 7

injectFunction · 0.90
wrapIntoObservableFunction · 0.90
guardFunction · 0.85
firstFunction · 0.85
mapMethod · 0.80
runInContextMethod · 0.80
lastFunction · 0.50

Tested by

no test coverage detected