UNPKG

gatsby-source-netlify-lfs

Version:

Use Netlify's Git LFS Transform Image API with gatsby-image

44 lines 2.13 kB
"use strict"; 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