@paroicms/server
Version:
The ParoiCMS server
35 lines • 1.65 kB
JavaScript
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