UNPKG

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.

61 lines (60 loc) 1.75 kB
/** * Route Implementation - Functor Laws * Core route primitives and combinators */ import { Route, Option } from './types'; /** * Identity function for functor law verification */ export declare const id: <A>(a: A) => A; /** * Function composition for functor law verification */ export declare const compose: <A, B, C>(f: (b: B) => C, g: (a: A) => B) => (a: A) => C; /** * Literal route - matches exact path */ export declare const literal: (path: string) => Route<{}>; /** * Parameter route - extracts path parameters */ export declare const param: <T extends Record<string, string>>(template: string) => Route<T>; /** * Query route - extracts query parameters */ export declare const query: <T extends Record<string, string>>(basePath: string) => Route<T>; /** * Wildcard route - catches all paths */ export declare const wildcard: (pattern: string) => Route<{ path: string; }>; /** * Route Combinators - Algebraic Operations */ /** * Sequence combinator - combines routes in sequence */ export declare const sequence: <A, B>(routeA: Route<A>, routeB: Route<B>) => Route<A & B>; /** * Choice combinator - tries routes in order */ export declare const choice: <A>(routes: Route<A>[]) => Route<A>; /** * Optional combinator - makes route optional */ export declare const optional: <A>(route: Route<A>) => Route<A | null>; /** * Nested combinator - creates nested routes */ export declare const nested: <A, B>(parent: Route<A>, _child: Route<B>) => Route<A & { child: B; }>; /** * Route matching utility */ export declare const matchRoute: <A>(routes: Route<A>[], path: string) => Option<Route<A>>; /** * Type-safe route builder */ export declare const route: <T extends string>(template: T) => Route<{}>;