@paroicms/server
Version:
The ParoiCMS server
32 lines (31 loc) • 1.36 kB
TypeScript
import type { ScRegularDocumentType, ScRoutingDocumentType } from "@paroicms/public-anywhere-lib";
import type { SiteContext } from "../../site-context/site-context.types.js";
export interface ParsedPageRoute {
language: string;
redirectTo: "parent" | undefined;
frontendAppPath?: string;
urlCacheKey: string;
documentHierarchy: DocumentHierarchyEntry[];
}
export type DocumentHierarchyEntry = RoutingDocumentHierarchyEntry | RegularDocumentHierarchyEntry;
export interface RoutingDocumentHierarchyEntry {
entryKind: "routing";
documentType: ScRoutingDocumentType;
}
export type RegularDocumentHierarchyEntry = RelativeIdHierarchyEntry | SlugHierarchyEntry;
interface RegularDocumentHierarchyEntryBase {
entryKind: "regular";
candidateTypes: ScRegularDocumentType[];
isClusterRoot: boolean;
}
export interface RelativeIdHierarchyEntry extends RegularDocumentHierarchyEntryBase {
lookupKind: "relativeId";
relativeId: string;
}
export interface SlugHierarchyEntry extends RegularDocumentHierarchyEntryBase {
lookupKind: "slug";
slug: string;
}
export declare function parsePageRoute(siteContext: Pick<SiteContext, "siteSchema">, urlPath: string): ParsedPageRoute | undefined;
export declare function findParentParsedRouteWithDocument(parsedRoute: ParsedPageRoute): ParsedPageRoute | undefined;
export {};