gatsby-adapter-netlify
Version:
Gatsby adapter for Netlify
49 lines (48 loc) • 1.39 kB
JavaScript
;
exports.__esModule = true;
exports.default = void 0;
exports.generateImageArgs = generateImageArgs;
exports.generateImageUrl = void 0;
const generateImageUrl = function generateImageUrl(source, imageArgs) {
const placeholderOrigin = `http://netlify.com`;
const imageParams = generateImageArgs(imageArgs);
const baseURL = new URL(`${placeholderOrigin}/.netlify/images`);
baseURL.search = imageParams.toString();
baseURL.searchParams.append(`url`, source.url);
baseURL.searchParams.append(`cd`, source.internal.contentDigest);
return `${baseURL.pathname}${baseURL.search}`;
};
exports.generateImageUrl = generateImageUrl;
function generateImageArgs({
width,
height,
format,
cropFocus,
quality
}) {
const params = new URLSearchParams();
if (width) {
params.append(`w`, width.toString());
}
if (height) {
params.append(`h`, height.toString());
}
if (cropFocus) {
params.append(`fit`, `cover`);
if (Array.isArray(cropFocus)) {
// For array of cropFocus values, append them as comma-separated string
params.append(`position`, cropFocus.join(`,`));
} else {
params.append(`position`, cropFocus);
}
}
if (format) {
params.append(`fm`, format);
}
if (quality) {
params.append(`q`, quality.toString());
}
return params;
}
var _default = generateImageUrl;
exports.default = _default;