From d4e46bcd8d83281d72064ff933e2a8529451904b Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Sun, 28 Jun 2026 18:16:28 +0200 Subject: [PATCH] Remove apollo-helpers codegen-formatting --- src/lib/graphql/generated/apollo-helpers.ts | 21 ++--- src/lib/requests/client/GraphQLClient.ts | 21 ++--- tools/scripts/codegenFormatter.ts | 89 +-------------------- 3 files changed, 19 insertions(+), 112 deletions(-) diff --git a/src/lib/graphql/generated/apollo-helpers.ts b/src/lib/graphql/generated/apollo-helpers.ts index 1b01782c..d97ec0e5 100644 --- a/src/lib/graphql/generated/apollo-helpers.ts +++ b/src/lib/graphql/generated/apollo-helpers.ts @@ -1,9 +1,4 @@ -import {FieldPolicy, FieldReadFunction, Reference, TypePolicies, TypePolicy} from '@apollo/client/cache'; -import { - GetChaptersMangaQuery, GetDownloadStatusQueryVariables, GetGlobalMetadataQueryVariables, - GetMangaScreenQueryVariables, GetSourceBrowseQueryVariables, GetUpdateStatusQueryVariables, GetWebuiUpdateStatusQueryVariables, -} from "@/lib/graphql/generated/graphql.ts"; -import {FieldFunctionOptions} from "@apollo/client/cache"; +import { FieldPolicy, FieldReadFunction, TypePolicies, TypePolicy } from '@apollo/client/cache'; export type AboutServerPayloadKeySpecifier = ('buildTime' | 'buildType' | 'discord' | 'github' | 'name' | 'revision' | 'version' | AboutServerPayloadKeySpecifier)[]; export type AboutServerPayloadFieldPolicy = { buildTime?: FieldPolicy | FieldReadFunction, @@ -734,24 +729,24 @@ export type QueryFieldPolicy = { categories?: FieldPolicy | FieldReadFunction, category?: FieldPolicy | FieldReadFunction, chapter?: FieldPolicy | FieldReadFunction, - chapters?: FieldPolicy | FieldReadFunction, + chapters?: FieldPolicy | FieldReadFunction, checkForServerUpdates?: FieldPolicy | FieldReadFunction, checkForWebUIUpdate?: FieldPolicy | FieldReadFunction, - downloadStatus?: FieldPolicy> | FieldReadFunction>, + downloadStatus?: FieldPolicy | FieldReadFunction, extension?: FieldPolicy | FieldReadFunction, extensions?: FieldPolicy | FieldReadFunction, - getWebUIUpdateStatus?: FieldPolicy> | FieldReadFunction>, + getWebUIUpdateStatus?: FieldPolicy | FieldReadFunction, koSyncStatus?: FieldPolicy | FieldReadFunction, lastUpdateTimestamp?: FieldPolicy | FieldReadFunction, - libraryUpdateStatus?: FieldPolicy> | FieldReadFunction>, - manga?: FieldPolicy> | FieldReadFunction>, + libraryUpdateStatus?: FieldPolicy | FieldReadFunction, + manga?: FieldPolicy | FieldReadFunction, mangas?: FieldPolicy | FieldReadFunction, - meta?: FieldPolicy> | FieldReadFunction>, + meta?: FieldPolicy | FieldReadFunction, metas?: FieldPolicy | FieldReadFunction, restoreStatus?: FieldPolicy | FieldReadFunction, searchTracker?: FieldPolicy | FieldReadFunction, settings?: FieldPolicy | FieldReadFunction, - source?: FieldPolicy> | FieldReadFunction>, + source?: FieldPolicy | FieldReadFunction, sources?: FieldPolicy | FieldReadFunction, trackRecord?: FieldPolicy | FieldReadFunction, trackRecords?: FieldPolicy | FieldReadFunction, diff --git a/src/lib/requests/client/GraphQLClient.ts b/src/lib/requests/client/GraphQLClient.ts index 91dacb3c..79bbf198 100644 --- a/src/lib/requests/client/GraphQLClient.ts +++ b/src/lib/requests/client/GraphQLClient.ts @@ -10,25 +10,25 @@ import { ErrorLink } from '@apollo/client/link/error'; import { SetContextLink } from '@apollo/client/link/context'; import type { ErrorLike } from '@apollo/client'; import { ApolloClient, ApolloLink, CombinedGraphQLErrors, InMemoryCache, ServerError } from '@apollo/client'; -import { from, filter, map, switchMap, firstValueFrom } from 'rxjs'; +import { filter, firstValueFrom, from, map, switchMap } from 'rxjs'; import UploadHttpLink from 'apollo-upload-client/UploadHttpLink.mjs'; import { GraphQLWsLink } from '@apollo/client/link/subscriptions'; import type { Client } from 'graphql-ws'; import { createClient } from 'graphql-ws'; import { getMainDefinition } from '@apollo/client/utilities'; -import type { TypePolicies } from '@apollo/client/cache'; import { RemoveTypenameFromVariablesLink } from '@apollo/client/link/remove-typename'; import { d } from 'koration'; import { useId } from '@mantine/hooks'; import { useEffect } from 'react'; import type { GraphQLFormattedError } from 'graphql'; import { BaseClient } from '@/lib/requests/client/BaseClient.ts'; -import type { StrictTypedTypePolicies } from '@/lib/graphql/generated/apollo-helpers.ts'; +import type { TypedTypePolicies } from '@/lib/graphql/generated/apollo-helpers.ts'; import { AuthManager } from '@/features/authentication/AuthManager.ts'; import type { UserRefreshMutation } from '@/lib/graphql/generated/graphql.ts'; import type { AbortableApolloMutationResponse } from '@/lib/requests/RequestManager.ts'; +import type { ChapterNodeList } from '@/lib/graphql/generated/graphql-base.types.ts'; -const typePolicies: StrictTypedTypePolicies = { +const typePolicies: TypedTypePolicies = { MangaType: { fields: { trackRecords: { @@ -142,7 +142,7 @@ const typePolicies: StrictTypedTypePolicies = { const replaceExistingItems = isReFetch && hasLessItems; if (replaceExistingItems) { - const existingWithReplacedIncoming: typeof incoming = { + const existingWithReplacedIncoming: ChapterNodeList = { ...existing, pageInfo: { ...existing.pageInfo, @@ -154,7 +154,7 @@ const typePolicies: StrictTypedTypePolicies = { return existingWithReplacedIncoming; } - const existingWithAppendedIncoming: typeof incoming = { + const existingWithAppendedIncoming: ChapterNodeList = { ...existing, pageInfo: { ...existing.pageInfo, @@ -423,14 +423,7 @@ export class GraphQLClient extends BaseClient>" - // is not compatible with "FieldReadFunction>" - // Since "typePolicies" is correctly typed as StrictTypedTypePolicies, and it is working as expected, - // the TypeError can just be ignored - typePolicies: typePolicies as TypePolicies, - }), + cache: new InMemoryCache({ typePolicies }), devtools: { enabled: true }, link: this.createLink(), }); diff --git a/tools/scripts/codegenFormatter.ts b/tools/scripts/codegenFormatter.ts index ca68f5f3..57c09b91 100644 --- a/tools/scripts/codegenFormatter.ts +++ b/tools/scripts/codegenFormatter.ts @@ -12,8 +12,8 @@ import * as path from 'path'; const format = (source: string, regex: RegExp | string, replaceValue: string): string => source.replace(regex, replaceValue); -let generatedGraphQLFilePath = path.resolve(import.meta.dirname, '../../src/lib/graphql/generated/graphql.ts'); -let generatedGraphQLFile = fs.readFileSync(generatedGraphQLFilePath, 'utf8'); +const generatedGraphQLFilePath = path.resolve(import.meta.dirname, '../../src/lib/graphql/generated/graphql.ts'); +const generatedGraphQLFile = fs.readFileSync(generatedGraphQLFilePath, 'utf8'); // add logic to format the codegen generated graphql file @@ -33,86 +33,5 @@ fs.writeFileSync(generatedGraphQLFilePath, fixSubscriptionHookNameSuffix); /* */ /* ****************************************** */ -generatedGraphQLFilePath = path.resolve(import.meta.dirname, '../../src/lib/graphql/generated/apollo-helpers.ts'); -generatedGraphQLFile = fs.readFileSync(generatedGraphQLFilePath, 'utf8'); - -const addImports = format( - generatedGraphQLFile, - `import { FieldPolicy, FieldReadFunction, TypePolicies, TypePolicy } from '@apollo/client/cache';`, - `import {FieldPolicy, FieldReadFunction, Reference, TypePolicies, TypePolicy} from '@apollo/client/cache'; -import { -\tGetChaptersMangaQuery, GetDownloadStatusQueryVariables, GetGlobalMetadataQueryVariables, -\tGetMangaScreenQueryVariables, GetSourceBrowseQueryVariables, GetUpdateStatusQueryVariables, GetWebuiUpdateStatusQueryVariables, -} from "@/lib/graphql/generated/graphql.ts"; -import {FieldFunctionOptions} from "@apollo/client/cache";`, -); - -const fixTypingOfQueryTypePolicies = format( - addImports, - `export type QueryFieldPolicy = { -\taboutServer?: FieldPolicy | FieldReadFunction, -\taboutWebUI?: FieldPolicy | FieldReadFunction, -\tcategories?: FieldPolicy | FieldReadFunction, -\tcategory?: FieldPolicy | FieldReadFunction, -\tchapter?: FieldPolicy | FieldReadFunction, -\tchapters?: FieldPolicy | FieldReadFunction, -\tcheckForServerUpdates?: FieldPolicy | FieldReadFunction, -\tcheckForWebUIUpdate?: FieldPolicy | FieldReadFunction, -\tdownloadStatus?: FieldPolicy | FieldReadFunction, -\textension?: FieldPolicy | FieldReadFunction, -\textensions?: FieldPolicy | FieldReadFunction, -\tgetWebUIUpdateStatus?: FieldPolicy | FieldReadFunction, -\tkoSyncStatus?: FieldPolicy | FieldReadFunction, -\tlastUpdateTimestamp?: FieldPolicy | FieldReadFunction, -\tlibraryUpdateStatus?: FieldPolicy | FieldReadFunction, -\tmanga?: FieldPolicy | FieldReadFunction, -\tmangas?: FieldPolicy | FieldReadFunction, -\tmeta?: FieldPolicy | FieldReadFunction, -\tmetas?: FieldPolicy | FieldReadFunction, -\trestoreStatus?: FieldPolicy | FieldReadFunction, -\tsearchTracker?: FieldPolicy | FieldReadFunction, -\tsettings?: FieldPolicy | FieldReadFunction, -\tsource?: FieldPolicy | FieldReadFunction, -\tsources?: FieldPolicy | FieldReadFunction, -\ttrackRecord?: FieldPolicy | FieldReadFunction, -\ttrackRecords?: FieldPolicy | FieldReadFunction, -\ttracker?: FieldPolicy | FieldReadFunction, -\ttrackers?: FieldPolicy | FieldReadFunction, -\tupdateStatus?: FieldPolicy | FieldReadFunction, -\tvalidateBackup?: FieldPolicy | FieldReadFunction -};`, - `export type QueryFieldPolicy = { -\taboutServer?: FieldPolicy | FieldReadFunction, -\taboutWebUI?: FieldPolicy | FieldReadFunction, -\tcategories?: FieldPolicy | FieldReadFunction, -\tcategory?: FieldPolicy | FieldReadFunction, -\tchapter?: FieldPolicy | FieldReadFunction, -\tchapters?: FieldPolicy | FieldReadFunction, -\tcheckForServerUpdates?: FieldPolicy | FieldReadFunction, -\tcheckForWebUIUpdate?: FieldPolicy | FieldReadFunction, -\tdownloadStatus?: FieldPolicy> | FieldReadFunction>, -\textension?: FieldPolicy | FieldReadFunction, -\textensions?: FieldPolicy | FieldReadFunction, -\tgetWebUIUpdateStatus?: FieldPolicy> | FieldReadFunction>, -\tkoSyncStatus?: FieldPolicy | FieldReadFunction, -\tlastUpdateTimestamp?: FieldPolicy | FieldReadFunction, -\tlibraryUpdateStatus?: FieldPolicy> | FieldReadFunction>, -\tmanga?: FieldPolicy> | FieldReadFunction>, -\tmangas?: FieldPolicy | FieldReadFunction, -\tmeta?: FieldPolicy> | FieldReadFunction>, -\tmetas?: FieldPolicy | FieldReadFunction, -\trestoreStatus?: FieldPolicy | FieldReadFunction, -\tsearchTracker?: FieldPolicy | FieldReadFunction, -\tsettings?: FieldPolicy | FieldReadFunction, -\tsource?: FieldPolicy> | FieldReadFunction>, -\tsources?: FieldPolicy | FieldReadFunction, -\ttrackRecord?: FieldPolicy | FieldReadFunction, -\ttrackRecords?: FieldPolicy | FieldReadFunction, -\ttracker?: FieldPolicy | FieldReadFunction, -\ttrackers?: FieldPolicy | FieldReadFunction, -\tupdateStatus?: FieldPolicy | FieldReadFunction, -\tvalidateBackup?: FieldPolicy | FieldReadFunction -};`, -); - -fs.writeFileSync(generatedGraphQLFilePath, fixTypingOfQueryTypePolicies); +// generatedGraphQLFilePath = path.resolve(import.meta.dirname, '../../src/lib/graphql/generated/apollo-helpers.ts'); +// generatedGraphQLFile = fs.readFileSync(generatedGraphQLFilePath, 'utf8');