From 75e1fb689ada1d835a68c495c7865e7891cec082 Mon Sep 17 00:00:00 2001 From: jj Date: Sat, 29 Mar 2025 14:19:59 +0000 Subject: [PATCH] web/queue: refactor removeItem() and clearPipelineCache() --- web/src/lib/state/queen-bee/queue.ts | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/web/src/lib/state/queen-bee/queue.ts b/web/src/lib/state/queen-bee/queue.ts index 6d5a3742..75f79c11 100644 --- a/web/src/lib/state/queen-bee/queue.ts +++ b/web/src/lib/state/queen-bee/queue.ts @@ -8,13 +8,12 @@ import type { CobaltFileReference } from "$lib/types/storage"; import type { CobaltQueue, CobaltQueueItem, CobaltQueueItemRunning } from "$lib/types/queue"; const clearPipelineCache = (queueItem: CobaltQueueItem) => { - if (queueItem.state === "running" && queueItem.pipelineResults) { - for (const item of queueItem.pipelineResults) { + if (queueItem.state === "running") { + let item: CobaltFileReference | undefined; + while ((item = queueItem.pipelineResults.pop())) { removeFromFileStorage(item.file.name); } - delete queueItem.pipelineResults; - } - if (queueItem.state === "done") { + } else if (queueItem.state === "done") { removeFromFileStorage(queueItem.resultFile.file.name); } @@ -107,12 +106,12 @@ export function itemRunning(id: string, workerId: string) { export function removeItem(id: string) { update(queueData => { - if (queueData[id].pipeline) { - for (const worker in queueData[id].pipeline) { - removeWorkerFromQueue(queueData[id].pipeline[worker].workerId); - } - clearPipelineCache(queueData[id]); + const item = queueData[id]; + + for (const worker of item.pipeline) { + removeWorkerFromQueue(worker.workerId); } + clearPipelineCache(item); delete queueData[id]; return queueData;