@paroicms/server
Version:
The ParoiCMS server
27 lines • 1.34 kB
JavaScript
import { documentTypeHasData, getDocumentTypeByName } from "@paroicms/internal-anywhere-lib";
import { encodeLNodeId } from "@paroicms/public-anywhere-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)
: undefined;
result.push({
id: encodeLNodeId(item.documentId),
url,
title: item.title,
});
}
renderingContext.addDependencyKey(...items.map((item) => makeCacheDependencyKey({ documentId: item.documentId })));
return result;
}
//# sourceMappingURL=breadcrumb.queries.js.map