UNPKG

@paroicms/server

Version:
80 lines 3.73 kB
import { getPartTypeByName } from "@paroicms/internal-anywhere-lib"; import { encodeLNodeId } from "@paroicms/public-anywhere-lib"; import { toTpSourceMedia } from "../common/medias/to-media-values.js"; import { getNodeTypeLabel } from "../helpers/label-translator.helper.js"; import { createLiquidDrop } from "../liquidjs-tools/liquidjs-drop.js"; import { loadPublicFieldValues } from "./field-values.js"; import { loadDefaultImage } from "./load-default-image.js"; import { formatListOfPartValues, keyOfParentPartData, } from "./parts.queries.js"; export function createPartDrop(renderingContext, docValues, options) { const { siteContext } = renderingContext; const partType = getPartTypeByName(siteContext.siteSchema, docValues.type); const typeLabel = getNodeTypeLabel(siteContext.siteSchema, { language: docValues.language, typeName: docValues.type, }); return createLiquidDrop(renderingContext, { renderingCacheKey: `part:${encodeLNodeId(docValues)}:${options.fieldNames?.join(",") ?? "full"}`, values: { kind: "part", leafType: async () => { siteContext.logger.warn("'leafType' is deprecated, use 'type' instead"); return docValues.type; }, get leafId() { siteContext.logger.warn("'leafId' is deprecated, use 'nodeId' instead"); return docValues.nodeId; }, id: encodeLNodeId(docValues), ...docValues, typeLabel: typeLabel, num: () => { siteContext.logger.warn("'num' is deprecated, use 'number' instead"); return docValues.number; }, defaultImage: async () => { const image = await loadDefaultImage(renderingContext, { fieldTypes: partType.fields, nodeId: docValues.nodeId, language: docValues.language, }); return image ? toTpSourceMedia(renderingContext, image) : undefined; }, defaultImageId: async () => { siteContext.logger.warn("'defaultImageId' is deprecated, use 'defaultImage' instead"); const image = await loadDefaultImage(renderingContext, { fieldTypes: partType.fields, nodeId: docValues.nodeId, language: docValues.language, }); return image?.id; }, field: () => loadPublicFieldValues(renderingContext, { typeName: docValues.type, lNodeId: docValues, fieldNames: options.fieldNames, }), fields: () => { siteContext.logger.warn("'part.fields' is deprecated, use 'part.field' instead"); return loadPublicFieldValues(renderingContext, { typeName: docValues.type, lNodeId: docValues, fieldNames: options.fieldNames, }); }, parts: () => { if (!partType.list) return; const completedItems = options.byParent.get(keyOfParentPartData({ listName: partType.list.listName, parentNodeId: docValues.nodeId, })); if (!completedItems) return; const rawItems = formatListOfPartValues(siteContext, completedItems, partType.list); return rawItems.map((item) => createPartDrop(renderingContext, item, options)); }, }, }); } //# sourceMappingURL=create-part-drop.js.map