import { existsSync, readdirSync, statSync } from "node:fs"; import { resolve } from "node:path"; import { NextResponse } from "next/server"; import { MEDIA_ROOT } from "@/lib/media-storage"; export async function GET() { const dir = MEDIA_ROOT; // eslint-disable-next-line security/detect-non-literal-fs-filename if (!existsSync(dir)) { return NextResponse.json({ files: [] }); } // eslint-disable-next-line security/detect-non-literal-fs-filename const files = readdirSync(dir) .filter((f) => /\.(png|jpg|jpeg|gif|webp|svg|bmp)$/i.test(f)) .map((f) => { const stat = statSync(resolve(dir, f)); return { name: f, url: `/api/media/${f}`, size: stat.size, uploaded: stat.mtimeMs, }; }) .sort((a, b) => b.uploaded - a.uploaded); return NextResponse.json({ files }); }