From 0cde5a3607ef925191b7d0bb4d497768d3a4949f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20M=C3=A9tais?= Date: Fri, 21 Jul 2023 10:17:18 +0200 Subject: [PATCH] Add Avif to content type detection --- lib/tools/redownload/contentTypeChecker.js | 75 +++++++--------------- lib/tools/redownload/imageDimensions.js | 4 ++ package.json | 10 +-- test/core/contentTypeCheckerTest.js | 10 +-- 4 files changed, 32 insertions(+), 67 deletions(-) diff --git a/lib/tools/redownload/contentTypeChecker.js b/lib/tools/redownload/contentTypeChecker.js index ea06d88..08f5b23 100644 --- a/lib/tools/redownload/contentTypeChecker.js +++ b/lib/tools/redownload/contentTypeChecker.js @@ -1,20 +1,12 @@ -var debug = require('debug')('ylt:contentTypeChecker'); -var Q = require('q'); -var isJpg = require('is-jpg'); -var isPng = require('is-png'); -var isSvg = require('is-svg'); -var isGif = require('is-gif'); -var isWebp = require('is-webp'); -var isWoff = require('is-woff'); -var isWoff2 = require('is-woff2'); -var isOtf = require('is-otf'); -var isTtf = require('is-ttf'); -var isEot = require('is-eot'); -var isJson = require('is-json'); +var debug = require('debug')('ylt:contentTypeChecker'); +var Q = require('q'); +var FileType = require('file-type'); +var isSvg = require('is-svg'); +var isJson = require('is-json'); var ContentTypeChecker = function() { - function checkContentType(entry) { + async function checkContentType(entry) { var deferred = Q.defer(); // Setting isSomething values: @@ -55,7 +47,7 @@ var ContentTypeChecker = function() { var foundType; try { - foundType = findContentType(entry.weightCheck.bodyBuffer); + foundType = await findContentType(entry.weightCheck.bodyBuffer); // If it's an image or a font, then rewrite. if (foundType !== null && (foundType.type === 'image' || foundType.type === 'webfont' || foundType.type === 'json')) { @@ -76,54 +68,23 @@ var ContentTypeChecker = function() { return deferred.promise; } - function findContentType(bodyBuffer) { + async function findContentType(bodyBuffer) { var bodyStr = bodyBuffer.toString(); - if (isJpg(bodyBuffer)) { - return contentTypes.jpeg; - } - - if (isPng(bodyBuffer)) { - return contentTypes.png; - } - // https://github.com/sindresorhus/is-svg/issues/7 if (/