resig.js
Version:
Universal reactive signal library with complete platform features: signals, animations, CRDTs, scheduling, DOM integration. Works identically across React, SolidJS, Svelte, Vue, and Qwik.
44 lines (43 loc) • 1.5 kB
TypeScript
/**
* Route Guards Implementation
* Access control and navigation guards
*/
import { Route, RouteGuard, Navigation } from './types';
import { Effect } from '../core/effect';
/**
* Creates a guarded route that checks permissions before navigation
*/
export declare const withGuard: <A>(route: Route<A>, _guard: RouteGuard<A>) => Route<A>;
/**
* Multiple guards combinator
*/
export declare const withGuards: <A>(route: Route<A>, guards: RouteGuard<A>[]) => Route<A>;
/**
* Authentication guard
*/
export declare const authGuard: <A>(isAuthenticated: () => Effect<boolean>) => RouteGuard<A>;
/**
* Role-based guard
*/
export declare const roleGuard: <A>(requiredRole: string, getUserRole: () => Effect<string | null>) => RouteGuard<A>;
/**
* Confirmation guard
*/
export declare const confirmGuard: <A>(message: string) => RouteGuard<A>;
/**
* Navigation guard executor
* Checks all guards before allowing navigation
*/
export declare const executeGuards: <A>(guards: RouteGuard<A>[], params: A, type: 'activate' | 'deactivate') => Promise<boolean>;
/**
* Guarded navigation wrapper
*/
export declare const createGuardedNavigation: <A>(navigation: Navigation<A>, _guards: RouteGuard<A>[]) => Navigation<A>;
/**
* Guard composition utilities
*/
export declare const composeGuards: <A>(..._guards: RouteGuard<A>[]) => RouteGuard<A>;
/**
* Conditional guard
*/
export declare const conditionalGuard: <A>(condition: (params: A) => boolean, guard: RouteGuard<A>) => RouteGuard<A>;