@codefast/image-loader
Version:
Flexible image loader for Next.js supporting multiple CDN providers
33 lines (32 loc) • 936 B
JavaScript
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 };