UNPKG

@codefast/image-loader

Version:

Flexible image loader for Next.js supporting multiple CDN providers

34 lines (33 loc) 982 B
import query_string from "query-string"; import { BaseImageLoader } from "../base-loader.js"; class ImgixLoader extends BaseImageLoader { static DOMAIN_PATTERN = /\.imgix\.net$/; static NAME = "imgix"; getName() { return ImgixLoader.NAME; } canHandle(source) { const domain = this.extractDomain(source); return ImgixLoader.DOMAIN_PATTERN.test(domain); } transformUrl(config) { const { quality, src, width } = config; try { const params = { auto: "format,compress", crop: "faces,entropy", fit: "crop", q: quality, w: width }; return query_string.stringifyUrl({ query: params, url: src }); } catch (error) { console.warn(`Failed to transform Imgix URL: ${src}`, error); return src; } } } export { ImgixLoader };