@paroicms/server
Version:
The ParoiCMS server
35 lines • 1.3 kB
JavaScript
import { isResizeRule, isSizeName, } from "@paroicms/public-anywhere-lib";
import { extensionToMediaType } from "@paroicms/server-image-cache-engine";
export function parseImageRawSizeNameAndExt(nameAndExt) {
const extIndex = nameAndExt.lastIndexOf(".");
if (extIndex === -1)
return;
const mediaType = extensionToMediaType(nameAndExt.slice(extIndex + 1));
if (!mediaType)
return;
const name = nameAndExt.slice(0, extIndex);
const match = name.match(/^(.+)-([0-9]+x[0-9]+)$/);
if (!match)
return;
const [, slug, rawSizeName] = match;
if (!isSizeName(rawSizeName))
return;
return { slug, rawSizeName, mediaType };
}
export function parseImageRenderedResizeRuleAndExt(nameAndExt) {
const extIndex = nameAndExt.lastIndexOf(".");
if (extIndex === -1)
return;
const mediaType = extensionToMediaType(nameAndExt.slice(extIndex + 1));
if (!mediaType)
return;
const nameAndSuffix = nameAndExt.slice(0, extIndex);
const match = nameAndSuffix.match(/^(.+)-([0-9x]+)-rendered$/);
if (!match)
return;
const [, slug, resizeRule] = match;
if (!isResizeRule(resizeRule))
return;
return { slug, resizeRule, mediaType };
}
//# sourceMappingURL=_media-serve-helpers.js.map