@netlify/content-engine
Version:
84 lines • 3.65 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.PlaceholderType = void 0;
exports.generatePlaceholder = generatePlaceholder;
const mime_type_helpers_1 = require("./utils/mime-type-helpers");
var PlaceholderType;
(function (PlaceholderType) {
PlaceholderType["BLURRED"] = "blurred";
PlaceholderType["DOMINANT_COLOR"] = "dominantColor";
PlaceholderType["TRACED_SVG"] = "tracedSVG";
})(PlaceholderType || (exports.PlaceholderType = PlaceholderType = {}));
const PLACEHOLDER_BASE64_WIDTH = 20;
const PLACEHOLDER_QUALITY = 25;
const PLACEHOLDER_DOMINANT_WIDTH = 200;
const PLACEHOLDER_TRACED_WIDTH = 200;
async function generatePlaceholder(source, placeholderType, store) {
switch (placeholderType) {
case PlaceholderType.BLURRED: {
return {
fallback: await runPlaceholder({
id: source.id,
placeholderUrl: source.placeholderUrl,
originalUrl: source.url,
format: (0, mime_type_helpers_1.getImageFormatFromMimeType)(source.mimeType),
width: source.width,
height: source.height,
contentDigest: source.internal.contentDigest,
type: PlaceholderType.BLURRED,
placeholderOptions: {
width: PLACEHOLDER_BASE64_WIDTH,
quality: PLACEHOLDER_QUALITY,
},
store,
}),
};
}
case PlaceholderType.DOMINANT_COLOR: {
return {
backgroundColor: await runPlaceholder({
id: source.id,
placeholderUrl: source.placeholderUrl,
originalUrl: source.url,
format: (0, mime_type_helpers_1.getImageFormatFromMimeType)(source.mimeType),
width: source.width,
height: source.height,
contentDigest: source.internal.contentDigest,
type: PlaceholderType.DOMINANT_COLOR,
placeholderOptions: {
width: PLACEHOLDER_DOMINANT_WIDTH,
quality: PLACEHOLDER_QUALITY,
},
store,
}),
};
}
case PlaceholderType.TRACED_SVG: {
return {
fallback: await runPlaceholder({
id: source.id,
placeholderUrl: source.placeholderUrl,
originalUrl: source.url,
format: (0, mime_type_helpers_1.getImageFormatFromMimeType)(source.mimeType),
width: source.width,
height: source.height,
contentDigest: source.internal.contentDigest,
type: PlaceholderType.TRACED_SVG,
placeholderOptions: {
width: PLACEHOLDER_TRACED_WIDTH,
quality: PLACEHOLDER_QUALITY,
},
store,
}),
};
}
}
}
async function runPlaceholder(_args) {
// TODO: completely remove this entire fn and file. Just leaving this clearly wrong code here
// so that we can make a separate PR fully removing file/image code
// None of this code runs in content-engine anyway, but deleting the files results in compile errors
// I deleted part of it here to remove `sharp` as a dep before we fully remove all image code
return "";
}
//# sourceMappingURL=placeholder-handler.js.map
;