MCPcopy
hub / github.com/angular/angular / checkGuards

Function checkGuards

packages/router/src/operators/check_guards.ts:56–78  ·  view source on GitHub ↗
(
  forwardEvent?: (evt: Event) => void,
)

Source from the content-addressed store, hash-verified

54import {takeUntilAbort} from '../utils/abort_signal_to_observable';
55
56export function checkGuards(
57 forwardEvent?: (evt: Event) => void,
58): MonoTypeOperatorFunction<NavigationTransition> {
59 return mergeMap((t) => {
60 const {
61 targetSnapshot,
62 currentSnapshot,
63 guards: {canActivateChecks, canDeactivateChecks},
64 } = t;
65 if (canDeactivateChecks.length === 0 && canActivateChecks.length === 0) {
66 return of({...t, guardsResult: true});
67 }
68
69 return runCanDeactivateChecks(canDeactivateChecks, targetSnapshot!, currentSnapshot).pipe(
70 mergeMap((canDeactivate) => {
71 return canDeactivate && isBoolean(canDeactivate)
72 ? runCanActivateChecks(targetSnapshot!, canActivateChecks, forwardEvent)
73 : of(canDeactivate);
74 }),
75 map((guardsResult) => ({...t, guardsResult})),
76 );
77 });
78}
79
80function runCanDeactivateChecks(
81 checks: CanDeactivate[],

Callers 2

router.spec.tsFile · 0.90
setupNavigationsMethod · 0.90

Calls 3

isBooleanFunction · 0.90
runCanDeactivateChecksFunction · 0.85
runCanActivateChecksFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…