2023-08-15 22:13:28 +02:00
|
|
|
/*
|
|
|
|
|
* Copyright (C) Contributors to the Suwayomi project
|
|
|
|
|
*
|
|
|
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
import fs from 'fs';
|
|
|
|
|
import * as path from 'path';
|
|
|
|
|
|
2023-09-30 16:55:35 +02:00
|
|
|
const format = (source: string, regex: RegExp | string, replaceValue: string): string =>
|
|
|
|
|
source.replace(regex, replaceValue);
|
2023-08-15 22:13:28 +02:00
|
|
|
|
2023-09-30 16:55:35 +02:00
|
|
|
let generatedGraphQLFilePath = path.resolve(__dirname, '../../src/lib/graphql/generated/graphql.ts');
|
|
|
|
|
let generatedGraphQLFile = fs.readFileSync(generatedGraphQLFilePath, 'utf8');
|
2023-08-15 22:13:28 +02:00
|
|
|
|
|
|
|
|
// add logic to format the codegen generated graphql file
|
|
|
|
|
|
2023-09-30 16:55:35 +02:00
|
|
|
/* ******************************************* */
|
|
|
|
|
/* */
|
|
|
|
|
/* typescript, typescript-operations */
|
|
|
|
|
/* */
|
|
|
|
|
/* ******************************************* */
|
|
|
|
|
|
2024-03-28 17:30:34 +01:00
|
|
|
const fixSubscriptionHookNameSuffix = format(generatedGraphQLFile, /SubscriptionSubscription/g, 'Subscription');
|
2023-08-15 22:13:28 +02:00
|
|
|
|
|
|
|
|
fs.writeFileSync(generatedGraphQLFilePath, fixSubscriptionHookNameSuffix);
|
2023-09-30 16:55:35 +02:00
|
|
|
|
|
|
|
|
/* ****************************************** */
|
|
|
|
|
/* */
|
|
|
|
|
/* typescript-apollo-client-helpers */
|
|
|
|
|
/* */
|
|
|
|
|
/* ****************************************** */
|
|
|
|
|
|
|
|
|
|
generatedGraphQLFilePath = path.resolve(__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';`,
|
2023-12-25 21:20:07 +01:00
|
|
|
`import {FieldPolicy, FieldReadFunction, Reference, TypePolicies, TypePolicy} from '@apollo/client/cache';
|
|
|
|
|
import {
|
2024-07-06 15:55:58 +02:00
|
|
|
\tGetChaptersMangaQuery, GetDownloadStatusQueryVariables, GetGlobalMetadataQueryVariables,
|
2024-07-03 23:15:50 +02:00
|
|
|
\tGetMangaQueryVariables, GetSourceBrowseQueryVariables, GetUpdateStatusQueryVariables, GetWebuiUpdateStatusQueryVariables,
|
2023-12-25 21:20:07 +01:00
|
|
|
} from "@/lib/graphql/generated/graphql.ts";
|
|
|
|
|
import {FieldFunctionOptions} from "@apollo/client/cache/inmemory/policies";`,
|
2023-09-30 16:55:35 +02:00
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const fixTypingOfQueryTypePolicies = format(
|
|
|
|
|
addImports,
|
|
|
|
|
`export type QueryFieldPolicy = {
|
2023-11-24 01:33:56 +01:00
|
|
|
\taboutServer?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\taboutWebUI?: FieldPolicy<any> | FieldReadFunction<any>,
|
2023-09-30 16:55:35 +02:00
|
|
|
\tcategories?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tcategory?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tchapter?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tchapters?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tcheckForServerUpdates?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tcheckForWebUIUpdate?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tdownloadStatus?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\textension?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\textensions?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tgetWebUIUpdateStatus?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tlastUpdateTimestamp?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tmanga?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tmangas?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tmeta?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tmetas?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\trestoreStatus?: FieldPolicy<any> | FieldReadFunction<any>,
|
2024-01-11 03:53:06 +01:00
|
|
|
\tsearchTracker?: FieldPolicy<any> | FieldReadFunction<any>,
|
2023-09-30 16:55:35 +02:00
|
|
|
\tsettings?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tsource?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tsources?: FieldPolicy<any> | FieldReadFunction<any>,
|
2024-01-11 03:53:06 +01:00
|
|
|
\ttrackRecord?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\ttrackRecords?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\ttracker?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\ttrackers?: FieldPolicy<any> | FieldReadFunction<any>,
|
2023-09-30 16:55:35 +02:00
|
|
|
\tupdateStatus?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tvalidateBackup?: FieldPolicy<any> | FieldReadFunction<any>
|
|
|
|
|
};`,
|
|
|
|
|
`export type QueryFieldPolicy = {
|
2024-01-11 03:53:06 +01:00
|
|
|
\taboutServer?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\taboutWebUI?: FieldPolicy<any> | FieldReadFunction<any>,
|
2023-09-30 16:55:35 +02:00
|
|
|
\tcategories?: FieldPolicy<any> | FieldReadFunction<any>,
|
2024-07-01 21:40:27 +02:00
|
|
|
\tcategory?: FieldPolicy<any> | FieldReadFunction<any>,
|
2024-07-02 16:20:28 +02:00
|
|
|
\tchapter?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tchapters?: FieldPolicy<GetChaptersMangaQuery['chapters']> | FieldReadFunction<GetChaptersMangaQuery['chapters']>,
|
2023-09-30 16:55:35 +02:00
|
|
|
\tcheckForServerUpdates?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\tcheckForWebUIUpdate?: FieldPolicy<any> | FieldReadFunction<any>,
|
2024-01-01 22:40:39 +01:00
|
|
|
\tdownloadStatus?: FieldPolicy<Reference, Reference, Reference, FieldFunctionOptions<GetDownloadStatusQueryVariables>> | FieldReadFunction<Reference, Reference, FieldFunctionOptions<GetDownloadStatusQueryVariables>>,
|
2024-07-06 15:55:58 +02:00
|
|
|
\textension?: FieldPolicy<any> | FieldReadFunction<any>,
|
2023-09-30 16:55:35 +02:00
|
|
|
\textensions?: FieldPolicy<any> | FieldReadFunction<any>,
|
2024-01-01 22:40:39 +01:00
|
|
|
\tgetWebUIUpdateStatus?: FieldPolicy<Reference, Reference, Reference, FieldFunctionOptions<GetWebuiUpdateStatusQueryVariables>> | FieldReadFunction<Reference, Reference, FieldFunctionOptions<GetWebuiUpdateStatusQueryVariables>>,
|
2023-09-30 16:55:35 +02:00
|
|
|
\tlastUpdateTimestamp?: FieldPolicy<any> | FieldReadFunction<any>,
|
2023-12-25 21:20:07 +01:00
|
|
|
\tmanga?: FieldPolicy<Reference, Reference, Reference, FieldFunctionOptions<GetMangaQueryVariables>> | FieldReadFunction<Reference, Reference, FieldFunctionOptions<GetMangaQueryVariables>>,
|
2023-09-30 16:55:35 +02:00
|
|
|
\tmangas?: FieldPolicy<any> | FieldReadFunction<any>,
|
2023-12-25 21:20:07 +01:00
|
|
|
\tmeta?: FieldPolicy<Reference, Reference, Reference, FieldFunctionOptions<GetGlobalMetadataQueryVariables>> | FieldReadFunction<Reference, Reference, FieldFunctionOptions<GetGlobalMetadataQueryVariables>>,
|
2023-09-30 16:55:35 +02:00
|
|
|
\tmetas?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\trestoreStatus?: FieldPolicy<any> | FieldReadFunction<any>,
|
2024-01-11 03:53:06 +01:00
|
|
|
\tsearchTracker?: FieldPolicy<any> | FieldReadFunction<any>,
|
2023-09-30 16:55:35 +02:00
|
|
|
\tsettings?: FieldPolicy<any> | FieldReadFunction<any>,
|
2024-07-03 23:15:50 +02:00
|
|
|
\tsource?: FieldPolicy<Reference, Reference, Reference, FieldFunctionOptions<GetSourceBrowseQueryVariables>> | FieldReadFunction<Reference, Reference, FieldFunctionOptions<GetSourceBrowseQueryVariables>>,
|
2023-09-30 16:55:35 +02:00
|
|
|
\tsources?: FieldPolicy<any> | FieldReadFunction<any>,
|
2024-01-11 03:53:06 +01:00
|
|
|
\ttrackRecord?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\ttrackRecords?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\ttracker?: FieldPolicy<any> | FieldReadFunction<any>,
|
|
|
|
|
\ttrackers?: FieldPolicy<any> | FieldReadFunction<any>,
|
2024-01-01 22:40:39 +01:00
|
|
|
\tupdateStatus?: FieldPolicy<Reference, Reference, Reference, FieldFunctionOptions<GetUpdateStatusQueryVariables>> | FieldReadFunction<Reference, Reference, FieldFunctionOptions<GetUpdateStatusQueryVariables>>,
|
2023-09-30 16:55:35 +02:00
|
|
|
\tvalidateBackup?: FieldPolicy<any> | FieldReadFunction<any>
|
|
|
|
|
};`,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
fs.writeFileSync(generatedGraphQLFilePath, fixTypingOfQueryTypePolicies);
|