diff options
| author | Adam Soltys <[email protected]> | 2023-01-17 11:53:24 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2023-01-17 11:53:24 -0800 |
| commit | e918a818acf789a6619cbf4432f0c4713d4c53e6 (patch) | |
| tree | 0d30f8b6e519aaf31079f337e8808992f63f92ef /lib/upload.js | |
| parent | 46913d34e77f19c3dd7c105b1deec452348dd1db (diff) | |
| download | coinos-server-e918a818acf789a6619cbf4432f0c4713d4c53e6.tar.gz coinos-server-e918a818acf789a6619cbf4432f0c4713d4c53e6.zip | |
nostr cleanup
Diffstat (limited to 'lib/upload.js')
| -rw-r--r-- | lib/upload.js | 51 |
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); +}; |
