import { jsonError, jsonOk } from "@/lib/server/api"; import { DEFAULT_OWNER_ID, requestOrigin } from "@/lib/server/runtime"; import { saveUploadAsset } from "@/lib/server/storage"; export const runtime = "nodejs"; export async function POST(request: Request) { try { const form = await request.formData(); const files = form.getAll("files").filter((item): item is File => item instanceof File); if (!files.length) throw new Error("No files uploaded."); const assets = await Promise.all(files.map(async (file) => { return saveUploadAsset({ ownerId: DEFAULT_OWNER_ID, bytes: Buffer.from(await file.arrayBuffer()), fileName: file.name, contentType: file.type || "application/octet-stream", origin: requestOrigin(request), tags: ["upload"] }); })); return jsonOk({ assets }, { status: 201 }); } catch (error) { return jsonError(error); } }