@paroicms/server
Version:
The ParoiCMS server
38 lines • 2.19 kB
JavaScript
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