From 89cab26f73137768f5181f7a005ee36db7a4e263 Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Tue, 24 Dec 2024 00:28:37 +0100 Subject: [PATCH] Fix typing after "apollo-client" update to v3.12.4 --- src/lib/requests/RequestManager.ts | 22 ++++++++++++---------- src/modules/chapter/services/Chapters.ts | 4 ++-- src/modules/manga/services/Mangas.ts | 4 ++-- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/lib/requests/RequestManager.ts b/src/lib/requests/RequestManager.ts index e0c13e85..1e1ded18 100644 --- a/src/lib/requests/RequestManager.ts +++ b/src/lib/requests/RequestManager.ts @@ -25,7 +25,7 @@ import { useQuery, useSubscription, } from '@apollo/client'; -import { OperationVariables, Reference } from '@apollo/client/core'; +import { MaybeMasked, OperationVariables, Reference } from '@apollo/client/core'; import { useEffect, useMemo, useRef, useState } from 'react'; import { IRestClient, RestClient } from '@/lib/requests/client/RestClient.ts'; import { GraphQLClient } from '@/lib/requests/client/GraphQLClient.ts'; @@ -380,12 +380,12 @@ type AbortableRequest = { abortRequest: AbortController['abort'] }; type ImageRequest = { response: Promise; cleanup: () => void } & AbortableRequest; export type AbortabaleApolloQueryResponse = { - response: Promise>; + response: Promise>>; } & AbortableRequest; export type AbortableApolloUseQueryResponse< Data = any, Variables extends OperationVariables = OperationVariables, -> = QueryResult & AbortableRequest; +> = QueryResult, Variables> & AbortableRequest; export type AbortableApolloUseMutationResponse< Data = any, Variables extends OperationVariables = OperationVariables, @@ -394,7 +394,7 @@ export type AbortableApolloUseMutationPaginatedResponse< Data = any, Variables extends OperationVariables = OperationVariables, > = [ - (page: number) => Promise>, + (page: number) => Promise>>, (Omit[1], 'loading'> & AbortableRequest & { size: number; @@ -413,7 +413,9 @@ export type AbortableApolloUseMutationPaginatedResponse< isValidating: boolean; })[], ]; -export type AbortableApolloMutationResponse = { response: Promise> } & AbortableRequest; +export type AbortableApolloMutationResponse = { + response: Promise>>; +} & AbortableRequest; const EXTENSION_LIST_CACHE_KEY = 'useExtensionListFetch'; @@ -517,9 +519,9 @@ export class RequestManager { options: ApolloPaginatedMutationOptions | undefined, checkIfCachedPageIsInvalid: ( cachedResult: AbortableApolloUseMutationPaginatedResponse[1][number] | undefined, - revalidatedResult: FetchResult, + revalidatedResult: FetchResult>, ) => boolean, - hasNextPage: (revalidatedResult: FetchResult) => boolean, + hasNextPage: (revalidatedResult: FetchResult>) => boolean, pageToRevalidate: number, maxPage: number, signal: AbortSignal, @@ -656,7 +658,7 @@ export class RequestManager { cacheResultsKey: string, cachedPages: Set, newPage: number, - ): Promise> { + ): Promise>> { const basePaginatedResult: Partial[1][number]> = { size: newPage, isLoading: false, @@ -664,7 +666,7 @@ export class RequestManager { called: true, }; - let response: FetchResult = {}; + let response: FetchResult> = {}; try { const { signal, abortRequest } = this.createAbortController(); setAbortRequest(abortRequest); @@ -769,7 +771,7 @@ export class RequestManager { cachedResults: AbortableApolloUseMutationPaginatedResponse[1][number][], getVariablesFor: (page: number) => Variables, paginatedResult: AbortableApolloUseMutationPaginatedResponse[1][number], - fetchPage: (page: number) => Promise>, + fetchPage: (page: number) => Promise>>, hasCachedResult: boolean, createPaginatedResult: ( result: Partial[1][number]>, diff --git a/src/modules/chapter/services/Chapters.ts b/src/modules/chapter/services/Chapters.ts index 3f18d591..0b79b4dd 100644 --- a/src/modules/chapter/services/Chapters.ts +++ b/src/modules/chapter/services/Chapters.ts @@ -8,7 +8,7 @@ import { t as translate } from 'i18next'; import gql from 'graphql-tag'; -import { DocumentNode } from '@apollo/client'; +import { DocumentNode, Unmasked } from '@apollo/client'; import { makeToast } from '@/modules/core/utils/Toast.ts'; import { requestManager } from '@/lib/requests/RequestManager.ts'; import { getMetadataServerSettings } from '@/modules/settings/services/ServerSettingsMetadata.ts'; @@ -108,7 +108,7 @@ export class Chapters { id: number, fragment: DocumentNode = CHAPTER_LIST_FIELDS, fragmentName: string = 'CHAPTER_LIST_FIELDS', - ): T | null { + ): Unmasked | null { return requestManager.graphQLClient.client.cache.readFragment({ id: requestManager.graphQLClient.client.cache.identify({ __typename: 'ChapterType', diff --git a/src/modules/manga/services/Mangas.ts b/src/modules/manga/services/Mangas.ts index d2c0ef53..c8955b4e 100644 --- a/src/modules/manga/services/Mangas.ts +++ b/src/modules/manga/services/Mangas.ts @@ -7,7 +7,7 @@ */ import { t as translate } from 'i18next'; -import { DocumentNode } from '@apollo/client/core'; +import { DocumentNode, Unmasked } from '@apollo/client/core'; import { requestManager } from '@/lib/requests/RequestManager.ts'; import { ChapterConditionInput, @@ -93,7 +93,7 @@ export class Mangas { id: MangaIdInfo['id'], fragment: DocumentNode = MANGA_BASE_FIELDS, fragmentName: string = 'MANGA_BASE_FIELDS', - ): T | null { + ): Unmasked | null { return requestManager.graphQLClient.client.cache.readFragment({ id: requestManager.graphQLClient.client.cache.identify({ __typename: 'MangaType',