@muryp/router-dom
Version:
spa in astro or native/vanilla js
31 lines (30 loc) • 1.11 kB
TypeScript
export type TMurypCtxtUrl = {
params: Record<string, string>;
query: Record<string, string>;
url: string;
id: string;
};
export type TMurypLayoutRoute = string | ((ctx: TMurypCtxtUrl, children?: string) => Promise<string> | string);
export type TMurypComponentRoute = string | ((args: TMurypCtxtUrl) => Promise<string> | string | undefined);
export type TMurypMiddlewareRoute = (args: TMurypCtxtUrl) => boolean | Promise<boolean>;
export type TMurypRouteConfig = {
title?: string | ((args: TMurypCtxtUrl) => string | undefined | Promise<string>);
component?: TMurypComponentRoute;
layout?: TMurypLayoutRoute;
middleware?: TMurypMiddlewareRoute;
script?: (args: TMurypCtxtUrl) => void;
};
export type TMurypRoutes = {
[path: string]: TMurypRouteConfig | TMurypRoutes | undefined;
'@404': TMurypRouteConfig;
};
export type TMurypRoutesDomArgs = {
routes: TMurypRoutes;
settings: {
id: string;
rootUrl?: string;
middleware?: TMurypMiddlewareRoute;
script?: (args: TMurypCtxtUrl) => void;
isFirstRender?: boolean;
};
};