Skip to content

Instantly share code, notes, and snippets.

@davidpp
Created April 13, 2023 14:23
Show Gist options
  • Save davidpp/7aa8d5289c2e907482c5f32f18b64e2f to your computer and use it in GitHub Desktop.
Save davidpp/7aa8d5289c2e907482c5f32f18b64e2f to your computer and use it in GitHub Desktop.
NextJS image loader for Directus
import type { ImageLoaderProps } from 'next/image'
const imgDomain = process.env.NEXT_PUBLIC_IMG_DOMAIN ?? ''
interface DirectusImageProps {
fit?: 'cover' | 'contain' | 'inside' | 'outside'
}
export default function directusImageLoader({
src: imageID,
width,
quality,
fit,
}: ImageLoaderProps & DirectusImageProps) {
const url = new URL(`https://${imgDomain}/assets/${imageID}`)
url.searchParams.set('fit', fit ?? 'contain')
url.searchParams.set('width', width.toString())
url.searchParams.set('quality', quality?.toString() || '75')
return url.href
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment