UNPKG

@paroicms/server

Version:
59 lines 2.06 kB
import { getHandleOfFieldOnNode } from "@paroicms/public-server-lib"; export function getHandleOfSiteAdminFavicon() { return "site:adminUiFavicon"; } export function getHandleOfSiteFavicon() { return "site:favicon"; } export function getHandleOfField(siteContext, options) { const { fieldType, nodeId, language } = options; if (fieldType.localized && !fieldType.withGallery) { if (language === undefined) throw new Error("Missing language for lNode field"); if (nodeId === siteContext.siteNodeId) return `site:${fieldType.name}:${language}`; return `lnod:${nodeId}:${fieldType.name}:${language}`; } return getHandleOfFieldOnNode({ siteNodeId: siteContext.siteNodeId, nodeId, fieldName: fieldType.name, }); } export function getHandleOfSiteField(siteContext, options) { const { fieldName, language } = options; const fieldType = siteContext.siteSchema.nodeTypes._site.fields.find((f) => f.name === fieldName); if (!fieldType) throw new Error(`Unknown site field '${fieldName}'`); return getHandleOfField(siteContext, { fieldType, nodeId: siteContext.siteNodeId, language, }); } export function getNodeIdFromHandle(siteContext, handle) { const parsed = parseHandle(handle); if (parsed.kind === "site") { return siteContext.siteNodeId; } return parsed.nodeId; } export function extractNodeIdFromHandle(handle) { const match = handle.match(/^(?:node|lnod):(\d+):/); return match?.[1]; } export function parseHandle(handle) { if (handle.startsWith("site:")) { return { kind: "site" }; } const nodeMatch = handle.match(/^node:(\d+):/); if (nodeMatch) { return { kind: "node", nodeId: nodeMatch[1] }; } const lnodMatch = handle.match(/^lnod:(\d+):/); if (lnodMatch) { return { kind: "lnod", nodeId: lnodMatch[1] }; } throw new Error(`Invalid handle format: ${handle}`); } //# sourceMappingURL=media-handles.helpers.js.map