UNPKG

@scayle/nuxt-image-provider

Version:

An image provider to handle SCAYLE-specific modifiers

29 lines (27 loc) 840 B
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 };