/**
 * 判断文件名是否为图片
 * @param {string} filename 完整文件名（含路径和扩展名）
 * @returns {boolean} 是否为图片
 */

const IMAGE_EXTENSIONS = new Set([
  "jpg",
  "jpeg",
  "png",
  "gif",
  "bmp",
  "svg",
  "webp",
  "tiff",
  "psd",
  "ico",
  "jfif",
  "apng",
  "avif",
]);
export function isImage(filename) {
  // 1. 去除路径，只保留文件名
  const baseName = filename.split("/").pop().split("\\").pop();
  if (!baseName) return false;

  // 2. 提取扩展名（处理多扩展名，取最后一个）
  const ext = baseName.split(".").pop()?.toLowerCase();
  if (!ext || ext.length < 2) return false; // 扩展名长度至少2位（如.jpg）

  // 3. 检查是否在图片扩展名白名单
  return IMAGE_EXTENSIONS.has(ext);
}

// 示例测试
//   console.log(isImage('photo.jpg'));     // true
//   console.log(isImage('image.png'));    // true
//   console.log(isImage('logo.svg'));     // true
//   console.log(isImage('cover.tar.gz')); // false（非图片扩展名）
//   console.log(isImage('file'));         // false（无扩展名）
//   console.log(isImage('.hidden.png'));  // true（隐藏文件）
//   console.log(isImage('icon.JPEG'));    // true（大小写不敏感）
//   console.log(isImage('video.mp4'));    // false（视频）
