gatsby-adapter-netlify
Version:
Gatsby adapter for Netlify
27 lines (26 loc) • 1.14 kB
JavaScript
;
exports.__esModule = true;
exports.generateFileUrl = exports.default = void 0;
var _crypto = require("crypto");
var _path = require("path");
function isImage(node) {
return node.mimeType.startsWith(`image/`) && node.mimeType !== `image/svg+xml`;
}
const placeholderOrigin = `http://netlify.com`;
const generateFileUrl = function generateFileUrl(source, pathPrefix) {
// use image cdn for images and file lambda for other files
let baseURL;
if (isImage(source)) {
baseURL = new URL(`${placeholderOrigin}/.netlify/images`);
baseURL.searchParams.append(`url`, source.url);
baseURL.searchParams.append(`cd`, source.internal.contentDigest);
} else {
baseURL = new URL(`${placeholderOrigin}${pathPrefix}/_gatsby/file/${(0, _crypto.createHash)(`md5`).update(source.url).digest(`hex`)}/${(0, _path.basename)(source.filename)}`);
baseURL.searchParams.append(`url`, source.url);
baseURL.searchParams.append(`cd`, source.internal.contentDigest);
}
return `${baseURL.pathname}${baseURL.search}`;
};
exports.generateFileUrl = generateFileUrl;
var _default = generateFileUrl;
exports.default = _default;