UNPKG

@paroicms/server

Version:
38 lines 2.19 kB
import { toAbsoluteUrl } from "@paroicms/internal-server-lib"; import mime from "mime"; export function makeUrlOfMediaFile(service, values, options) { const { mediaId, mediaType, originalName, absoluteUrl } = values; const filename = `${originalName ?? "unamed"}${fileExtensionOf(mediaType)}`; const relUrl = `/medias/${encodeURIComponent(mediaId)}/file/${encodeURIComponent(filename)}`; const url = absoluteUrl ? toAbsoluteUrl(service, relUrl) : relUrl; return options?.returnObj ? { url, filename } : url; } export function makeUrlOfImageVariant(service, values, options) { const { mediaId, mediaType, rawSizeName, slug, resourceVersion, absoluteUrl } = values; const filename = `${slug ?? "unamed"}-${rawSizeName}${fileExtensionOf(mediaType)}`; const relUrl = `/medias/${encodeURIComponent(mediaId)}/cache/${encodeURIComponent(resourceVersion)}/${encodeURIComponent(filename)}`; const url = absoluteUrl ? toAbsoluteUrl(service, relUrl) : relUrl; return options?.returnObj ? { url, filename } : url; } export function makeUrlOfUnversionedImageVariant(service, values, options) { const { mediaId, mediaType, resizeRule, slug, absoluteUrl } = values; const filename = `${slug ?? "unamed"}-${resizeRule}-rendered${fileExtensionOf(mediaType)}`; const relUrl = `/medias/${encodeURIComponent(mediaId)}/cache/unversioned/${encodeURIComponent(filename)}`; const url = absoluteUrl ? toAbsoluteUrl(service, relUrl) : relUrl; return options?.returnObj ? { url, filename } : url; } function fileExtensionOf(mediaType) { if (mediaType === "image/jpeg") return ".jpeg"; const ext = mime.getExtension(mediaType); return ext ? `.${ext}` : ""; } export function makeFeedUrl(service, language) { return toAbsoluteUrl(service, shouldPrefixWithLanguage(service.siteSchema, language) ? `/${language}/feed` : "/feed"); } export function shouldPrefixWithLanguage(siteSchema, language) { const { languageRoutingMode, defaultLanguage } = siteSchema; return (languageRoutingMode === "prefixAll" || (languageRoutingMode === "prefixSecondary" && defaultLanguage !== language)); } //# sourceMappingURL=url-helpers.js.map