UNPKG

@codefast/image-loader

Version:

Flexible image loader for Next.js supporting multiple CDN providers

33 lines (32 loc) 936 B
import query_string from "query-string"; import { BaseImageLoader } from "../base-loader.js"; class UnsplashLoader extends BaseImageLoader { static DOMAIN = "images.unsplash.com"; static NAME = "unsplash"; getName() { return UnsplashLoader.NAME; } canHandle(source) { const domain = this.extractDomain(source); return domain === UnsplashLoader.DOMAIN; } transformUrl(config) { const { quality, src, width } = config; try { const params = { fit: "crop", fm: "auto", q: quality, w: width }; return query_string.stringifyUrl({ query: params, url: src }); } catch (error) { console.warn(`Failed to transform Unsplash URL: ${src}`, error); return src; } } } export { UnsplashLoader };