From f7b45868cf77ba78fd397c078e89d7f0d279923f Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Wed, 2 Dec 2020 14:30:03 -0500 Subject: [PATCH] Use async generator for handling uploads --- packages/skin-database/api/processUserUploads.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/skin-database/api/processUserUploads.ts b/packages/skin-database/api/processUserUploads.ts index adf0f8e1..68fbfc7d 100644 --- a/packages/skin-database/api/processUserUploads.ts +++ b/packages/skin-database/api/processUserUploads.ts @@ -3,6 +3,13 @@ import S3 from "../s3"; import { addSkinFromBuffer } from "../addSkin"; import { EventHandler } from "./app"; +async function* reportedUploads() { + const upload = await Skins.getReportedUpload(); + if (upload != null) { + yield upload; + } +} + let processing = false; export async function processUserUploads(eventHandler: EventHandler) { @@ -11,8 +18,8 @@ export async function processUserUploads(eventHandler: EventHandler) { return; } processing = true; - let upload = await Skins.getReportedUpload(); - while (upload != null) { + const uploads = reportedUploads(); + for await (const upload of uploads) { try { const buffer = await S3.getUploadedSkin(upload.id); const result = await addSkinFromBuffer( @@ -41,7 +48,6 @@ export async function processUserUploads(eventHandler: EventHandler) { eventHandler(action); console.error(e); } - upload = await Skins.getReportedUpload(); } processing = false;