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.
113 lines (112 loc) • 3.52 kB
TypeScript
/**
* Framework Adapters for Router
* Universal router integration with React, Svelte, Vue, etc.
*/
import { Route, RouteTree } from './types';
/**
* React Router Adapter
*/
export declare const useReactRouter: <A>(routes: Route<A>[]) => {
route: import("./types").Option<Route<A>>;
params: A;
navigate: (to: string) => void;
back: () => import("..").Effect<void>;
forward: () => import("..").Effect<void>;
replace: (to: string) => import("..").Effect<void>;
};
/**
* React Tree Router Adapter
*/
export declare const useReactTreeRouter: <A>(tree: RouteTree<A>) => {
route: import("./types").Option<Route<A>>;
params: A;
navigate: (to: string) => import("..").Effect<void>;
back: () => import("..").Effect<void>;
forward: () => import("..").Effect<void>;
replace: (to: string) => import("..").Effect<void>;
};
/**
* Svelte Router Adapter
*/
export declare const useSvelteRouter: <A>(routes: Route<A>[]) => {
route: import("..").Signal<import("./types").Option<Route<A>>>;
params: import("..").Signal<A>;
navigate: (to: string) => import("..").Effect<void>;
back: () => import("..").Effect<void>;
forward: () => import("..").Effect<void>;
replace: (to: string) => import("..").Effect<void>;
};
/**
* Vue Router Adapter
*/
export declare const useVueRouter: <A>(routes: Route<A>[]) => {
route: any;
params: any;
navigate: (to: string) => import("..").Effect<void>;
back: () => import("..").Effect<void>;
forward: () => import("..").Effect<void>;
replace: (to: string) => import("..").Effect<void>;
};
/**
* SolidJS Router Adapter
*/
export declare const useSolidRouter: <A>(routes: Route<A>[]) => {
route: any;
params: any;
navigate: (to: string) => import("..").Effect<void>;
back: () => import("..").Effect<void>;
forward: () => import("..").Effect<void>;
replace: (to: string) => import("..").Effect<void>;
};
/**
* Universal Router Hook
* Automatically detects framework and returns appropriate adapter
*/
export declare const useRouter: <A>(routes: Route<A>[]) => {
route: import("./types").Option<Route<A>>;
params: A;
navigate: (to: string) => void;
back: () => import("..").Effect<void>;
forward: () => import("..").Effect<void>;
replace: (to: string) => import("..").Effect<void>;
} | {
route: any;
params: any;
navigate: (to: string) => import("..").Effect<void>;
back: () => import("..").Effect<void>;
forward: () => import("..").Effect<void>;
replace: (to: string) => import("..").Effect<void>;
} | {
route: {
tag: "None";
};
params: any;
navigate: (_to: string) => void;
back: () => void;
forward: () => void;
replace: (_to: string) => void;
};
/**
* Server-Side Rendering Adapter
*/
export declare const createSSRRouter: <A>(routes: Route<A>[], initialPath: string) => {
getRoute: () => import("./types").Option<Route<A>>;
getParams: () => A;
setPath: (path: string) => void;
render: () => {
route: import("./types").Option<Route<A>>;
params: A;
path: string;
};
};
/**
* Testing Adapter
*/
export declare const createTestRouter: <A>(routes: Route<A>[], initialPath?: string) => {
router: import("./types").RouterSignal<A>;
navigate: (to: string) => import("..").Effect<void>;
getPath: () => any;
setPath: (path: string) => any;
back: () => import("..").Effect<void>;
forward: () => import("..").Effect<void>;
};