diff --git a/src/application/utilities.ts b/src/application/utilities.ts index afb06e4..aa53eb6 100644 --- a/src/application/utilities.ts +++ b/src/application/utilities.ts @@ -21,7 +21,17 @@ export async function downloadCache(e } const items = response.data ?? [] + const serverItemIds = new Set(items.map((item) => item.id)) + // Remove items that don't exist on server + const existingItems = await storage.getAll() + for (const existingItem of existingItems) { + if (!serverItemIds.has(existingItem.id)) { + await storage.delete(existingItem.id) + } + } + + // Update or add new items for (const item of items) { let overwrite = false const existingItem = await storage.getById(item.id)