Resolves once all stores are empty.
await clearAllCaches();
export async function clearAllCaches(): Promise<void> {
try {
const db = await getDB();
const tx = db.transaction(
[
IDB_STORE.SEARCH_RESULTS,
IDB_STORE.SEARCH_HISTORY,
IDB_STORE.SUPPLIER_QUERY_CACHE,
IDB_STORE.SUPPLIER_PRODUCT_DATA_CACHE,
IDB_STORE.SUPPLIER_STATS,
IDB_STORE.EXCLUDED_PRODUCTS,
],
'readwrite',
);
await Promise.all([
tx.objectStore(IDB_STORE.SEARCH_RESULTS).clear(),
tx.objectStore(IDB_STORE.SEARCH_HISTORY).clear(),
tx.objectStore(IDB_STORE.SUPPLIER_QUERY_CACHE).clear(),
tx.objectStore(IDB_STORE.SUPPLIER_PRODUCT_DATA_CACHE).clear(),
tx.objectStore(IDB_STORE.SUPPLIER_STATS).clear(),
tx.objectStore(IDB_STORE.EXCLUDED_PRODUCTS).clear(),
tx.done,
]);
emitSearchResultsCleared();
} catch (error) {
logger.error('Failed to clear all IndexedDB caches', { error });
}
}
Clears every cache-bearing store in one transaction: search results, history, both supplier caches, stats, and excluded products. Backs the "clear cache" action in settings.