import fs from "node:fs"; import path from "node:path"; import crypto from "node:crypto"; import multer from "multer"; import { config } from "../config.js"; fs.mkdirSync(config.uploadDirectory, { recursive: true }); const storage = multer.diskStorage({ destination: config.uploadDirectory, filename: (request, file, callback) => { const extension = path.extname(file.originalname).slice(0, 20); callback(null, `${Date.now()}-${crypto.randomUUID()}${extension}`); }, }); export const uploadSingle = multer({ storage, limits: { fileSize: config.MAX_UPLOAD_MB * 1024 * 1024, files: 1 }, }).single("file");