import { SITE_URL_IMAGE } from './constants'; import imageDefaultPlaceholder from '@/assets/img/lazy-load/transparent.png'; import imageWebpPlaceholder from '@/assets/img/lazy-load/transparent.webp'; export interface GetImageParams { fallbackImage?: string; width?: number; height?: number; } export interface ImageWebp { default: string; webp: string; } export function getImage( originalImage: string, { fallbackImage, width, height }: GetImageParams = {}, ): ImageWebp { if (originalImage) { let url = SITE_URL_IMAGE + originalImage; if (width && height) { url += `?width=${Math.round(width * 1.5)}` + `&height=${Math.round(height * 1.5)}` + `&fit=inside`; } let urlWebp = url + '&format=webp'; return { default: url, webp: urlWebp }; } if (fallbackImage) return { default: fallbackImage, webp: fallbackImage }; return { default: imageDefaultPlaceholder, webp: imageWebpPlaceholder }; }