aboutsummaryrefslogtreecommitdiffstats
path: root/lib/upload.ts
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-02-28 14:14:30 -0800
committerAdam Soltys <[email protected]>2026-02-28 14:14:30 -0800
commita1632ae402d11fdd7ffc360de97c55e0b4fad677 (patch)
treeaad5a1ea73f95dcd055c1d0b4ebf2708c36b4e01 /lib/upload.ts
parent76c7e52172f3dc25ee109434157d4d982ad9d2bd (diff)
downloadcoinos-server-a1632ae402d11fdd7ffc360de97c55e0b4fad677.tar.gz
coinos-server-a1632ae402d11fdd7ffc360de97c55e0b4fad677.zip
migrate to hono
Diffstat (limited to 'lib/upload.ts')
-rw-r--r--lib/upload.ts17
1 files changed, 9 insertions, 8 deletions
diff --git a/lib/upload.ts b/lib/upload.ts
index 2ed5d905..900d49dd 100644
--- a/lib/upload.ts
+++ b/lib/upload.ts
@@ -5,14 +5,15 @@ import { bail, fail } from "$lib/utils";
import { fileTypeFromBuffer } from "file-type";
import sharp from "sharp";
-export default async (req, res) => {
+export default async (c) => {
try {
- const {
- params: { type },
- } = req;
+ const type = c.req.param("type");
- const data = await req.file();
- let buf = await data.toBuffer();
+ const body = await c.req.parseBody();
+ const file = body.file || Object.values(body).find((v) => v instanceof File);
+ if (!file) fail("no file uploaded");
+
+ let buf = Buffer.from(await (file as File).arrayBuffer());
const [format, ext] = (await fileTypeFromBuffer(buf)).mime.split("/");
@@ -26,9 +27,9 @@ export default async (req, res) => {
const filePath = `/home/bun/app/data/uploads/${hash}.webp`;
writeFileSync(filePath, buf);
- res.send({ hash });
+ return c.json({ hash });
} catch (e) {
err("problem uploading", e.message);
- bail(res, e.message);
+ return bail(c, e.message);
}
};