UNPKG

@paroicms/server

Version:
109 lines 3.57 kB
import { rawToRenderedSize } from "@paroicms/public-server-lib"; import { makeUrlOfImageVariant, makeUrlOfMediaFile, makeUrlOfUnversionedImageVariant, } from "../../helpers/url-helpers.js"; const mediaHandleSymbol = Symbol("mediaHandle"); export function toTpSourceMedia(renderingContext, media, options) { const { siteContext, language } = renderingContext; const base = { isSource: true, mediaId: media.id, mediaType: media.mediaType, originalName: media.originalName, url: makeUrlOfMediaFile(siteContext, { mediaType: media.mediaType, mediaId: media.id, originalName: media.originalName, }), weightB: media.weightB, attachedData: media.attachedData?.[language], [mediaHandleSymbol]: options?.galleryHandle, }; if (media.kind === "file") { return { kind: "file", ...base, }; } const { rawWidth, rawHeight } = media; const pixelRatio = media.pixelRatio ?? siteContext.themeConf.pixelRatio; return { kind: "image", ...base, rawWidth, rawHeight, pixelRatio, ...rawToRenderedSize({ rawWidth, rawHeight }, pixelRatio), }; } export function isTpSourceMedia(media) { return !!media && typeof media === "object" && mediaHandleSymbol in media; } export function galleryHandleOf(media) { return media[mediaHandleSymbol]; } export function toMImageVariant(siteContext, variant, options) { const { mediaId, rawWidth, rawHeight, rawSizeName, mediaType, resourceVersion } = variant; const { pixelRatio, absoluteUrl, unversionedUrl } = options; const { width, height } = rawToRenderedSize({ rawWidth, rawHeight }, pixelRatio); return { kind: "image", isSource: false, mediaId, url: unversionedUrl ? makeUrlOfUnversionedImageVariant(siteContext, { mediaId, mediaType, resizeRule: unversionedUrl.resizeRule, slug: variant.slug, absoluteUrl, }) : makeUrlOfImageVariant(siteContext, { mediaId, mediaType, rawSizeName, resourceVersion, slug: variant.slug, absoluteUrl, }), mediaType, rawWidth, rawHeight, pixelRatio, width, height, }; } export function toMSourceMedia(siteContext, media, { absoluteUrl = false } = {}) { const base = { isSource: true, mediaId: media.id, mediaType: media.mediaType, weightB: media.weightB, url: makeUrlOfMediaFile(siteContext, { mediaType: media.mediaType, mediaId: media.id, originalName: media.originalName, absoluteUrl, }), originalName: media.originalName, attachedData: media.attachedData, }; if (media.kind === "file") { return { kind: "file", ...base, }; } const { rawWidth, rawHeight } = media; return { kind: "image", ...base, rawWidth, rawHeight, pixelRatio: media.pixelRatio, ...rawToRenderedSize({ rawWidth, rawHeight }, media.pixelRatio ?? siteContext.themeConf.pixelRatio), }; } export function toTpImageVariant(siteContext, variant, options) { return toMImageVariant(siteContext, variant, options); } //# sourceMappingURL=to-media-values.js.map