mkcart / backend /utils /imageNumbering.js
Kumar
updated
c2efbe6
const fs = require('fs');
const path = require('path');
const getNextImageNumber = () => {
const uploadDir = path.join(__dirname, '../../frontend/public/images/products');
if (!fs.existsSync(uploadDir)) {
fs.mkdirSync(uploadDir, { recursive: true });
return 43;
}
const files = fs.readdirSync(uploadDir);
const numbers = files
.filter(file => /^\d+\.(jpg|jpeg|png|webp|gif)$/i.test(file))
.map(file => parseInt(file.split('.')[0]))
.filter(num => !isNaN(num));
return numbers.length > 0 ? Math.max(...numbers) + 1 : 43;
};
const isValidImageFile = (filename) => {
const validExtensions = ['.jpg', '.jpeg', '.png', '.webp', '.gif'];
const ext = path.extname(filename).toLowerCase();
return validExtensions.includes(ext);
};
const cleanupOldFiles = (daysOld = 30) => {
const uploadDir = path.join(__dirname, '../../frontend/public/images/products');
if (!fs.existsSync(uploadDir)) {
return;
}
const files = fs.readdirSync(uploadDir);
const now = Date.now();
const cutoff = now - (daysOld * 24 * 60 * 60 * 1000);
files.forEach(file => {
const filePath = path.join(uploadDir, file);
const stats = fs.statSync(filePath);
if (stats.mtime.getTime() < cutoff && file.startsWith('temp-')) {
fs.unlinkSync(filePath);
console.log(`Cleaned up old file: ${file}`);
}
});
};
module.exports = {
getNextImageNumber,
isValidImageFile,
cleanupOldFiles
};