[Codegen] Use gql for "loading chapters"
This commit is contained in:
@@ -9,13 +9,20 @@
|
||||
import fs from 'fs';
|
||||
import * as path from 'path';
|
||||
|
||||
const format = (source: string, regex: RegExp, replaceValue: string): string => source.replace(regex, replaceValue);
|
||||
const format = (source: string, regex: RegExp | string, replaceValue: string): string =>
|
||||
source.replace(regex, replaceValue);
|
||||
|
||||
const generatedGraphQLFilePath = path.resolve(__dirname, '../../src/lib/graphql/generated/graphql.ts');
|
||||
const generatedGraphQLFile = fs.readFileSync(generatedGraphQLFilePath, 'utf8');
|
||||
let generatedGraphQLFilePath = path.resolve(__dirname, '../../src/lib/graphql/generated/graphql.ts');
|
||||
let generatedGraphQLFile = fs.readFileSync(generatedGraphQLFilePath, 'utf8');
|
||||
|
||||
// add logic to format the codegen generated graphql file
|
||||
|
||||
/* ******************************************* */
|
||||
/* */
|
||||
/* typescript, typescript-operations */
|
||||
/* */
|
||||
/* ******************************************* */
|
||||
|
||||
const fixCursorTyping = format(
|
||||
generatedGraphQLFile,
|
||||
/Cursor: \{ input: any; output: any; }/g,
|
||||
@@ -31,3 +38,73 @@ const fixLongStringTyping = format(
|
||||
const fixSubscriptionHookNameSuffix = format(fixLongStringTyping, /SubscriptionSubscription/g, 'Subscription');
|
||||
|
||||
fs.writeFileSync(generatedGraphQLFilePath, fixSubscriptionHookNameSuffix);
|
||||
|
||||
/* ****************************************** */
|
||||
/* */
|
||||
/* 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';`,
|
||||
`import { FieldPolicy, FieldReadFunction, TypePolicies, TypePolicy } from '@apollo/client/cache';
|
||||
import { GetChaptersQuery } from "@/lib/graphql/generated/graphql.ts";`,
|
||||
);
|
||||
|
||||
const fixTypingOfQueryTypePolicies = format(
|
||||
addImports,
|
||||
`export type QueryFieldPolicy = {
|
||||
\tabout?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||
\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>,
|
||||
\tsettings?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||
\tsource?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||
\tsources?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||
\tupdateStatus?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||
\tvalidateBackup?: FieldPolicy<any> | FieldReadFunction<any>
|
||||
};`,
|
||||
`export type QueryFieldPolicy = {
|
||||
\tabout?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||
\tcategories?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||
\tcategory?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||
\tchapter?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||
\tchapters?: FieldPolicy<GetChaptersQuery['chapters']> | FieldReadFunction<GetChaptersQuery['chapters']>,
|
||||
\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>,
|
||||
\tsettings?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||
\tsource?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||
\tsources?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||
\tupdateStatus?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||
\tvalidateBackup?: FieldPolicy<any> | FieldReadFunction<any>
|
||||
};`,
|
||||
);
|
||||
|
||||
fs.writeFileSync(generatedGraphQLFilePath, fixTypingOfQueryTypePolicies);
|
||||
|
||||
Reference in New Issue
Block a user