const fs = require('fs');
const path = require('path');
const sharp = require('sharp');

// Automatically detects if you're inside 'assets' or in the root folder
const currentDir = process.cwd();
const assetsDir = currentDir.endsWith('assets') 
  ? currentDir 
  : path.join(currentDir, 'assets');

console.log(`📁 Scanning folder: ${assetsDir}\n`);

if (!fs.existsSync(assetsDir)) {
  console.error(`❌ Folder not found: ${assetsDir}`);
  process.exit(1);
}

fs.readdirSync(assetsDir).forEach(async (file) => {
  const ext = path.extname(file).toLowerCase();
  
  // Only process PNG and JPG
  if (['.png', '.jpg', '.jpeg'].includes(ext)) {
    const filePath = path.join(assetsDir, file);
    const outputName = path.basename(file, ext) + '.webp';
    const outputPath = path.join(assetsDir, outputName);

    try {
      await sharp(filePath)
        .resize({ width: 1600, withoutEnlargement: true })
        .webp({ quality: 80 })
        .toFile(outputPath);

      console.log(`✅ Converted: ${file} ➔ ${outputName}`);
    } catch (err) {
      console.error(`❌ Error processing ${file}:`, err.message);
    }
  }
});