diff --git a/src/queryCache.js b/src/queryCache.js index 79a7467957..4dc47f72cf 100644 --- a/src/queryCache.js +++ b/src/queryCache.js @@ -84,6 +84,7 @@ export function makeQueryCache() { } cache.clear = () => { + Object.values(cache.queries).forEach(query => query.clear()) cache.queries = {} notifyGlobalListeners() } @@ -516,6 +517,12 @@ export function makeQueryCache() { query.scheduleStaleTimeout() } + query.clear = () => { + clearTimeout(query.staleTimeout) + clearTimeout(query.cacheTimeout) + query.cancel() + } + return query } diff --git a/types/index.d.ts b/types/index.d.ts index 09a8d43992..0edecdb7fc 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -593,6 +593,7 @@ export interface CachedQuery { setData( dataOrUpdater: unknown | ((oldData: unknown | undefined) => unknown) ): void + clear(): void } export interface QueryCache { @@ -701,7 +702,7 @@ export interface QueryCache { ): void isFetching: number subscribe(callback: (queryCache: QueryCache) => void): () => void - clear(): Array> + clear(): void } export const queryCache: QueryCache