adds width and height to uploads that match proper mime type, continues build to FileDetails
This commit is contained in:
13
src/uploads/formatFilesize.js
Normal file
13
src/uploads/formatFilesize.js
Normal file
@@ -0,0 +1,13 @@
|
||||
function formatBytes(bytes, decimals = 0) {
|
||||
if (bytes === 0) return '0 Bytes';
|
||||
|
||||
const k = 1024;
|
||||
const dm = decimals < 0 ? 0 : decimals;
|
||||
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
||||
|
||||
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
||||
|
||||
return `${parseFloat((bytes / (k ** i)).toFixed(dm))} ${sizes[i]}`;
|
||||
}
|
||||
|
||||
module.exports = formatBytes;
|
||||
6
src/uploads/getImageSize.js
Normal file
6
src/uploads/getImageSize.js
Normal file
@@ -0,0 +1,6 @@
|
||||
const imageSize = require('image-size');
|
||||
const { promisify } = require('util');
|
||||
|
||||
const getImageSize = promisify(imageSize);
|
||||
|
||||
module.exports = getImageSize;
|
||||
15
src/uploads/getThumbnail.js
Normal file
15
src/uploads/getThumbnail.js
Normal file
@@ -0,0 +1,15 @@
|
||||
const imageMIMETypes = require('./imageMIMETypes');
|
||||
|
||||
const getThumbnail = (mimeType, staticURL, filename, sizes, adminThumbnail) => {
|
||||
if (imageMIMETypes.indexOf(mimeType) > -1) {
|
||||
if (sizes?.[adminThumbnail]?.filename) {
|
||||
return `${staticURL}/${sizes[adminThumbnail].filename}`;
|
||||
}
|
||||
|
||||
return `${staticURL}/${filename}`;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
module.exports = getThumbnail;
|
||||
3
src/uploads/imageMIMETypes.js
Normal file
3
src/uploads/imageMIMETypes.js
Normal file
@@ -0,0 +1,3 @@
|
||||
const types = ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml'];
|
||||
|
||||
module.exports = types;
|
||||
@@ -1,12 +1,9 @@
|
||||
const fs = require('fs');
|
||||
const sharp = require('sharp');
|
||||
const sanitize = require('sanitize-filename');
|
||||
const { promisify } = require('util');
|
||||
const imageSize = require('image-size');
|
||||
const getImageSize = require('./getImageSize');
|
||||
const fileExists = require('./fileExists');
|
||||
|
||||
const sizeOf = promisify(imageSize);
|
||||
|
||||
function getOutputImage(sourceImage, size) {
|
||||
const extension = sourceImage.split('.').pop();
|
||||
const name = sanitize(sourceImage.substr(0, sourceImage.lastIndexOf('.')) || sourceImage);
|
||||
@@ -33,7 +30,7 @@ module.exports = async function resizeAndSave(config, savedFilename, mimeType) {
|
||||
const sourceImage = `${staticDir}/${savedFilename}`;
|
||||
let sizes;
|
||||
try {
|
||||
const dimensions = await sizeOf(sourceImage);
|
||||
const dimensions = await getImageSize(sourceImage);
|
||||
sizes = imageSizes
|
||||
.filter(desiredSize => desiredSize.width < dimensions.width)
|
||||
.map(async (desiredSize) => {
|
||||
|
||||
Reference in New Issue
Block a user