UNPKG

@paroicms/server

Version:
35 lines 1.65 kB
import { documentTypeHasData, getDocumentTypeByName } from "@paroicms/internal-anywhere-lib"; import { encodeLNodeId } from "@paroicms/public-anywhere-lib"; import { assignLoadDescriptor } from "@paroicms/public-server-lib"; import { getBreadcrumb } from "../admin-backend/lnode/lnode.queries.js"; import { makeCacheDependencyKey } from "../common/text-cache.js"; import { getUrlOfDocument } from "../rendered-site/page-route/make-url.js"; export async function getPublicBreadcrumb(renderingContext, documentId) { const { siteContext } = renderingContext; const items = await getBreadcrumb(siteContext, renderingContext.tracker, documentId, { ensurePublished: false, skipHome: false, }); const result = []; for (const item of items) { const documentType = getDocumentTypeByName(siteContext.siteSchema, item.typeName); const url = documentTypeHasData(documentType) && item.documentId.nodeId !== documentId.nodeId ? await getUrlOfDocument(siteContext, renderingContext.tracker, item.documentId, { forPreview: renderingContext.isPreview, }) : undefined; result.push(assignLoadDescriptor({ id: encodeLNodeId(item.documentId), url, title: item.title, }, { load: "one", nodeKind: "document", descriptorName: "id", documentId: item.documentId, })); } renderingContext.addDependencyKey(...items.map((item) => makeCacheDependencyKey({ documentId: item.documentId }))); return result; } //# sourceMappingURL=breadcrumb.queries.js.map