aboutsummaryrefslogtreecommitdiffstats
path: root/lib/upload.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-01-17 11:53:24 -0800
committerAdam Soltys <[email protected]>2023-01-17 11:53:24 -0800
commite918a818acf789a6619cbf4432f0c4713d4c53e6 (patch)
tree0d30f8b6e519aaf31079f337e8808992f63f92ef /lib/upload.js
parent46913d34e77f19c3dd7c105b1deec452348dd1db (diff)
downloadcoinos-server-e918a818acf789a6619cbf4432f0c4713d4c53e6.tar.gz
coinos-server-e918a818acf789a6619cbf4432f0c4713d4c53e6.zip
nostr cleanup
Diffstat (limited to 'lib/upload.js')
-rw-r--r--lib/upload.js51
1 files changed, 25 insertions, 26 deletions
diff --git a/lib/upload.js b/lib/upload.js
index b37e0bf2..43cc35ce 100644
--- a/lib/upload.js
+++ b/lib/upload.js
@@ -8,37 +8,36 @@ import { pipeline } from "stream";
import { g, s } from "$lib/db";
export default async ({ params: { type }, file, user }, res) => {
- if (!["banner", "profile"].includes(type))
- throw new Error("invalid upload");
+ if (!["banner", "profile"].includes(type)) throw new Error("invalid upload");
- let data = await file();
- let s1 = new Clone(data.file);
- let s2 = new Clone(data.file);
+ let data = await file();
+ let s1 = new Clone(data.file);
+ let s2 = new Clone(data.file);
- let [format, ext] = (await fileTypeFromStream(s1)).mime.split("/");
+ let [format, ext] = (await fileTypeFromStream(s1)).mime.split("/");
- if (format !== "image" && !["jpg", "jpeg", "png"].includes(ext))
- throw new Error("unsupported file type");
+ if (format !== "image" && !["jpg", "jpeg", "png"].includes(ext))
+ throw new Error("unsupported file type");
- let name = `${user.id}-${type}.webp`;
- let path = `/app/uploads/${name}`;
- let size = type === "banner" ? 1920 : 240;
+ let name = `${user.id}-${type}.webp`;
+ let path = `/app/uploads/${name}`;
+ let size = type === "banner" ? 1920 : 240;
- let t = sharp()
- .rotate()
- .resize(size)
- .webp();
+ let t = sharp()
+ .rotate()
+ .resize(size)
+ .webp();
- await new Promise(r => pipeline(s2, t, fs.createWriteStream(path), r));
+ await new Promise(r => pipeline(s2, t, fs.createWriteStream(path), r));
- let r = async () => {
- await db.watch(`user:${user.id}`);
- user = await g(`user:${user.id}`);
- user[type] = true;
- let m = await db.multi();
- await s(`user:${user.id}`, user);
- };
- await r();
+ let r = async () => {
+ await db.watch(`user:${user.id}`);
+ user = await g(`user:${user.id}`);
+ user[type] = true;
+ let m = await db.multi();
+ await s(`user:${user.id}`, user);
+ };
+ await r();
- res.send(name);
-}
+ res.send(name);
+};