import { readdir, stat } from 'fs/promises'; import { join } from 'path'; // πŸ”Ž Settings: const dir = '../static/library'; const sizeLimit = 20000; // 20kb; function convertBytes(bytes, format = 'KB') { if (format === 'KB') { return (bytes / 1024).toFixed(2) + ' KB'; } else if (format === 'MB') { return (bytes / (1024 * 1024)).toFixed(2) + ' MB'; } else { return 'Formato no vΓ‘lido. Utilice "KB" o "MB".'; } } export async function checkSize() { const files = await readdir(dir); let maxSize = 0; let maxFiles = []; try { for (const file of files) { const filePath = join(dir, file); const stats = await stat(filePath); if (stats.size > maxSize) { maxSize = stats.size; maxFiles.push(file); } } if (maxFiles.length === 0) { console.log(`- βœ… All files are smaller than ${convertBytes(sizeLimit)}`); } else { throw new Error( `The following files are bigger than ${convertBytes(sizeLimit)}: ${maxFiles.join(', ')}` ); } } catch (err) { console.error(`- ❌ ${err.message}`); } finally { // Print the results console.log(`- πŸ“ Directory: ${dir}`); console.log(`- πŸ“ Size limit: ${convertBytes(sizeLimit)} bytes`); console.log(`- πŸ“ Max size found: ${convertBytes(maxSize, 'MB')}`); if (maxFiles.length > 0) { maxFiles.forEach((file) => { console.log(`- πŸ“„ File: ${file} - πŸ“¦ Size: ${convertBytes(maxSize, 'KB')}`); }); } } } // Run the function checkSize();