sly-svelte-router
Version:
A spa router for svelte based on the History API
47 lines (46 loc) • 1.46 kB
TypeScript
import { default as Router } from './Router.svelte';
export declare let currRoute: Route;
export declare function link(node: HTMLAnchorElement, data?: any): {
destroy(): void;
};
export declare function route(node: HTMLElement, route: Omit<RouteChange, 'changeState'> | string): {
destroy(): void;
};
export declare function goTo(route: Omit<RouteChange, 'changeState'> | string, changeState?: ChangeState): void;
export declare function goNext(): void;
export declare function goPrev(): void;
type RouteChange = {
key: string;
data?: any;
changeState?: ChangeState;
};
type ChangeState = 'push' | 'replace';
export type Route = {
path: string;
comp: any;
title: string;
data?: any;
restrictions?: Array<string>;
disableSlot?: boolean;
};
export type Routes = {
[key: string]: Omit<Route, 'data'>;
};
/**
* Returns false for when the route is let through (not restricted), and
* false, or route key to redirect to when restricted.
*/
export type RestrictionResolver = (route: Route) => false | string;
export type RouterConf = {
routes: Routes;
onRouteChanged: (route: Route) => void;
rewriteInvalid: boolean;
onInvalidRoute?: string;
restrictions?: {
[restriction: string]: RestrictionResolver;
};
};
export declare function isRouteRestricted(route: Route): false | string;
export declare function createRouter(conf: RouterConf): Route;
export { Router, };
export default link;