import { writeFileSync } from "fs"; import { extname } from "path"; import { v4 } from "uuid"; import { ContentFilenameRegex } from "~/lib/server/constants"; import isLoggedIn from "~/lib/server/middlewareButNotReally/isLoggedIn"; export default eventHandler(async (ev) => { const noMultipart = "no multipart data found!???!?"; isLoggedIn(ev); let mpd = await readMultipartFormData(ev); if (!mpd) throw createError({ statusCode: 400, message: noMultipart, }); let file = mpd[0]; if (!file) { throw createError({ statusCode: 400, message: noMultipart, }); } if (!ContentFilenameRegex.test(file.filename!)) { throw createError({ statusCode: 400, message: "unsupported file type!", }); } let b = `${v4()}.${extname(file.filename!)}`; writeFileSync(`tmp/${b}`, file.data); return { success: true, fileName: b, }; });