From 7069268db096ab0aa7a8839a3594efb2d1be8f86 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Mon, 4 Sep 2023 20:46:58 -0300 Subject: thumbs: new check-has-thumbs util, others throw for missing info --- src/gen-thumbs.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/gen-thumbs.js') diff --git a/src/gen-thumbs.js b/src/gen-thumbs.js index 51b2c72d..741cdff3 100644 --- a/src/gen-thumbs.js +++ b/src/gen-thumbs.js @@ -168,11 +168,23 @@ getThumbnailsAvailableForDimensions.all = .map(([name, {size}]) => [name, size]) .sort((a, b) => b[1] - a[1]); +export function checkIfImagePathHasCachedThumbnails(imagePath, cache) { + // Generic utility for checking if the thumbnail cache includes any info for + // the provided image path, so that the other functions don't hard-code the + // cache format. + + return !!cache[imagePath]; +} + export function getDimensionsOfImagePath(imagePath, cache) { // This function is really generic. It takes the gen-thumbs image cache and // returns the dimensions in that cache, so that other functions don't need // to hard-code the cache format. + if (!cache[imagePath]) { + throw new Error(`Expected imagePath to be included in cache, got ${imagePath}`); + } + const [width, height] = cache[imagePath].slice(1); return [width, height]; } @@ -185,6 +197,10 @@ export function getThumbnailEqualOrSmaller(preferred, imagePath, cache) { // one which is being thumbnail-ified, this just returns the name of the // selected thumbnail size. + if (!cache[imagePath]) { + throw new Error(`Expected imagePath to be included in cache, got ${imagePath}`); + } + const {size: preferredSize} = thumbnailSpec[preferred]; const [width, height] = getDimensionsOfImagePath(imagePath, cache); const available = getThumbnailsAvailableForDimensions([width, height]); -- cgit 1.3.0-6-gf8a5