UNPKG

@forest-js/core

Version:

A tiny, functional DOM engine with explicit update and real DOM.

122 lines 3.38 kB
import { RouterProps } from "../types"; /** * @function createRouter * @description Create a router instance * @param options - Router options * @returns Router instance * @example * ```ts * const { router, routerStore } = createRouter({ isMultiInstance: true }); * ``` */ export declare const createRouter: (options?: { /** * When true, allows creating multiple router instances. * Defaults to false. * * @type {boolean} * @default false * @example * ```ts * const options: CreateRouterOptions = { isMultiInstance: true }; * ``` */ isMultiInstance?: boolean; }) => { /** * @description Router instance * @returns Router instance * @example * ```ts * const { router } = createRouter(); * ``` */ router: { /** * @description Push a new route * @param path - Path to push * @param state - State to push * @example * ```ts * const { router } = createRouter(); * router.push("/", { name: "John" }); * ``` */ push: (path: string, state?: any) => void; /** * @description Go back to the previous route * @example * ```ts * const { router } = createRouter(); * router.back(); * ``` */ back: () => void; /** * @description Replace the current route * @param path - Path to replace * @param state - State to replace * @example * ```ts * const { router } = createRouter(); * router.replace("/", { name: "John" }); * ``` */ replace: (path: string, state: any) => void; /** * @description Subscribe to router changes * @param callback - Callback function * @returns Unsubscribe function * @example * ```ts * const { router } = createRouter(); * router.subscribe((props) => { * console.log(props); * }); * ``` */ subscribe: <T = any>(callback: (props: RouterProps<T>) => void) => () => void; /** * @description Unsubscribe from router changes * @param unsubscribeFn - Unsubscribe function * @example * ```ts * const { router } = createRouter(); * const unsubscribe = router.subscribe((props) => { * console.log(props); * }); * unsubscribe(); * ``` */ unsubscribe: (unsubscribeFn: () => void) => void; /** * @description Get the current router state * @returns Current router state * @example * ```ts * const { router } = createRouter(); * const state = router.get() * ``` */ get: () => RouterProps<any> | null; }; /** * @description Router store * @returns Router store * @example * ```ts * const { routerStore } = createRouter(); * ``` */ routerStore: import("../types").Store<RouterProps<any> | null>; /** * @description Destroy the router instance * @example * ```ts * const { router } = createRouter(); * router.destroy(); * ``` */ destroyRouter: () => void; }; //# sourceMappingURL=core.d.ts.map