diff --git a/js/modules/types/attachment.js b/js/modules/types/attachment.js index 712d5a6c9..7881b3909 100644 --- a/js/modules/types/attachment.js +++ b/js/modules/types/attachment.js @@ -6,7 +6,6 @@ const is = require('@sindresorhus/is'); const { arrayBufferToBlob, blobToArrayBuffer } = require('blob-util'); const AttachmentTS = require('../../../ts/types/Attachment'); const GoogleChrome = require('../../../ts/util/GoogleChrome'); -const MIME = require('../../../ts/types/MIME'); const { toLogFormat } = require('./errors'); const { scaleImageToLevel } = require('../../../ts/util/scaleImageToLevel'); const { @@ -51,7 +50,7 @@ exports.isValid = rawAttachment => { // NOTE: This step strips all EXIF metadata from JPEG images as // part of re-encoding the image: exports.autoOrientJPEG = async (attachment, _, message) => { - if (!MIME.isJPEG(attachment.contentType)) { + if (!AttachmentTS.canBeTranscoded(attachment)) { return attachment; } diff --git a/ts/types/Attachment.ts b/ts/types/Attachment.ts index e32713cad..f3e3234cf 100644 --- a/ts/types/Attachment.ts +++ b/ts/types/Attachment.ts @@ -181,6 +181,15 @@ export function isImageAttachment( isImageTypeSupported(attachment.contentType) ); } + +export function canBeTranscoded( + attachment?: AttachmentType +): attachment is AttachmentType { + return Boolean( + isImageAttachment(attachment) && !MIME.isGif(attachment.contentType) + ); +} + export function hasImage( attachments?: Array ): string | boolean | undefined {