@scayle/nuxt-image-provider
Version:
An image provider to handle SCAYLE-specific modifiers
29 lines (27 loc) • 840 B
JavaScript
const getImage = (src, options, ctx) => {
const scayleModifiers = options.modifiers;
const keyMap = {
width: "width",
height: "height",
quality: "quality",
brightness: "brightness",
impolicy: "impolicy"
};
const baseURL = ctx.options.runtimeConfig.public.cdnUrl;
if (scayleModifiers?.width && scayleModifiers?.aspectRatio) {
scayleModifiers.height = Math.ceil(
scayleModifiers.width * scayleModifiers.aspectRatio[1] / scayleModifiers.aspectRatio[0]
);
}
const imageUrl = src.startsWith("https://") ? new URL(src) : new URL(src, baseURL);
for (const key in scayleModifiers) {
if (!scayleModifiers[key] || !(key in keyMap)) {
continue;
}
imageUrl.searchParams.set(key, String(scayleModifiers[key]));
}
return {
url: imageUrl.toString()
};
};
export { getImage };