diff --git a/web/src/elements/router/routeUtils.ts b/web/src/elements/router/routeUtils.ts index 702a3713f1..303dfa1224 100644 --- a/web/src/elements/router/routeUtils.ts +++ b/web/src/elements/router/routeUtils.ts @@ -3,13 +3,17 @@ import { P, match } from "ts-pattern"; import { TemplateResult } from "lit"; -type RouteInvoke = - | ((_1: RouteArgs) => Promise>) - | (() => Promise>); +type ListRoute = () => Promise>; +type ViewRoute = (_1: RouteArgs) => Promise>; +type InternalRedirect = string; +type ExternalRedirect = [string, boolean]; -type _RawRedirect = [string, string | [string, boolean]]; -type _RawRoute = [string, RouteInvoke]; -export type RawRoute = _RawRoute | _RawRedirect; +type RouteInvoke = ViewRoute | ListRoute; + +type RedirectRoute = [string, InternalRedirect | ExternalRedirect]; +type PageRoute = [string, RouteInvoke]; + +export type RawRoute = PageRoute | RedirectRoute; // eslint-disable-next-line @typescript-eslint/no-explicit-any const isLoader = (v: any): v is RouteInvoke => typeof v === "function";