gatsby-source-netlify-lfs
Version:
Use Netlify's Git LFS Transform Image API with gatsby-image
44 lines • 2.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.netlifyLfsUrlBuilder = exports.initNetlifyLfsImageData = void 0;
const gatsby_plugin_image_1 = require("gatsby-plugin-image");
const initNetlifyLfsImageData = (imageData, defaultArgs = {}) => ((args) => getNetlifyLfsImageData(imageData, Object.assign(Object.assign({}, defaultArgs), args)));
exports.initNetlifyLfsImageData = initNetlifyLfsImageData;
const getNetlifyLfsImageData = (imgDimensions, args) => {
const { publicURL: baseUrl, } = args;
const imgFileName = basename(baseUrl);
const imgFileType = fileType(imgFileName).toLowerCase();
const imgDimension = imgDimensions[imgFileName];
if (imgDimension == null)
return null;
const { h: sourceHeight, w: sourceWidth, p: placeholderURL, b: backgroundColor } = imgDimension;
const gatsbyImageData = (0, gatsby_plugin_image_1.getImageData)(Object.assign({ pluginName: `gatsby-source-netlify-lfs`, urlBuilder: exports.netlifyLfsUrlBuilder, baseUrl,
sourceHeight,
sourceWidth, aspectRatio: sourceWidth / sourceHeight, placeholderURL,
backgroundColor }, args));
if (args.sizes)
gatsbyImageData.images.fallback.sizes = args.sizes;
gatsbyImageData.images.fallback.src = baseUrl;
const shouldRemoveSrcSet = imgFileType == 'svg' || imgFileType == 'gif';
if (shouldRemoveSrcSet)
gatsbyImageData.images.fallback.srcSet = undefined;
return gatsbyImageData;
};
const netlifyLfsUrlBuilder = (args) => {
const { baseUrl, height, width } = args;
return `${baseUrl}${nf_resize(width, height)}`;
};
exports.netlifyLfsUrlBuilder = netlifyLfsUrlBuilder;
function nf_resize(width = 0, height = 0, resize = 'smartcrop') {
if (!width && !height)
return '';
let urlParams = `?nf_resize=${resize}`;
if (width > 0)
urlParams += `&w=${width}`;
if (height > 0)
urlParams += `&h=${height}`;
return urlParams;
}
const basename = (path) => path.split('/').pop();
const fileType = (fileName) => fileName.split('.').pop();
//# sourceMappingURL=initNetlifyLfsImageData.js.map