Navigation Failure
Signature
ts
type NavigationFailureType = 'aborted' | 'redirected' | 'cancelled' | 'error';
interface NavigationFailure {
readonly _isNavigationFailure: true;
type: NavigationFailureType;
to?: unknown;
from?: unknown;
message?: string;
error?: unknown;
}
function createNavigationFailure(
type: NavigationFailureType,
options?: Omit<NavigationFailure, '_isNavigationFailure' | 'type'>,
): NavigationFailure
function isNavigationFailure(value: unknown): value is NavigationFailureParameters
createNavigationFailuretype: failure categoryoptions: optionalto/from/message/errorfields
isNavigationFailurevalue: unknown input to check
Returns
createNavigationFailure: normalized failure objectisNavigationFailure: type guard boolean
Behavior Details
- Guard failures are exposed in
afterEachas the third argument. - Typical types:
aborted: guard returnedfalseredirected: guard returned string/objecterror: guard threw or returnedError
Error / Failure Semantics
isNavigationFailure({})isfalse.- Failure objects are diagnostics for navigation outcomes.
Example
tsx
import { createRouter, isNavigationFailure } from '@vureact/router';
const router = createRouter({ routes, history: createWebHistory() });
router.afterEach((to, from, failure) => {
if (!failure) return;
if (isNavigationFailure(failure)) {
console.log('failure type:', failure.type);
console.log('from -> to:', from.fullPath, '->', to.fullPath);
}
});