From 83635faf9547308b0aebf31c7763c06eb15d1a1f Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Sat, 23 Mar 2024 23:34:20 +0100 Subject: [PATCH] Cache first page of source manga fetch response (#666) --- src/lib/requests/RequestManager.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/lib/requests/RequestManager.ts b/src/lib/requests/RequestManager.ts index b65309bf..cfc047cc 100644 --- a/src/lib/requests/RequestManager.ts +++ b/src/lib/requests/RequestManager.ts @@ -449,6 +449,15 @@ export class RequestManager { return; } + const isFirstPage = pageToRevalidate === 1; + const isTtlReached = + Date.now() - (this.cache.getFetchTimestampFor(cacheResultsKey, getVariablesFor(pageToRevalidate)) ?? 0) >= + 1000 * 60 * 5; + + if (isFirstPage && !isTtlReached) { + return; + } + const { response: revalidationRequest } = this.doRequest( GQLMethod.MUTATION, GET_SOURCE_MANGAS_FETCH, @@ -463,11 +472,9 @@ export class RequestManager { const cachedPageData = this.cache.getResponseFor< AbortableApolloUseMutationPaginatedResponse[1][number] >(cacheResultsKey, getVariablesFor(pageToRevalidate)); - const isCachedPageInvalid = checkIfCachedPageIsInvalid(cachedPageData, revalidationResponse); - if (isCachedPageInvalid) { - this.cache.cacheResponse(cacheResultsKey, getVariablesFor(pageToRevalidate), revalidationResponse); - } + + this.cache.cacheResponse(cacheResultsKey, getVariablesFor(pageToRevalidate), revalidationResponse); if (!hasNextPage(revalidationResponse)) { const currentCachedPages = this.cache.getResponseFor>(cachePagesKey, getVariablesFor(0))!;