Skip to content

Commit 99ab3a8

Browse files
authored
[typescript-operations] Clean up selection set processor that depends on typescript plugin (preResolveTypes: false) (#10556)
* Remove legacy selection set proccessor that depends on typescript plugin * Remove obsolete tests * Improve tests to be explicit
1 parent f558d71 commit 99ab3a8

File tree

6 files changed

+787
-2399
lines changed

6 files changed

+787
-2399
lines changed

packages/plugins/other/visitor-plugin-common/src/base-documents-visitor.ts

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ function getRootType(operation: OperationTypeNode, schema: GraphQLSchema) {
2828
}
2929

3030
export interface ParsedDocumentsConfig extends ParsedTypesConfig {
31-
preResolveTypes: boolean;
3231
extractAllFieldsToTypes: boolean;
3332
globalNamespace: boolean;
3433
operationResultSuffix: string;
@@ -45,30 +44,6 @@ export interface ParsedDocumentsConfig extends ParsedTypesConfig {
4544
}
4645

4746
export interface RawDocumentsConfig extends RawTypesConfig {
48-
/**
49-
* @default true
50-
* @description Uses primitive types where possible.
51-
* Set to `false` in order to use `Pick` and take use the types generated by `typescript` plugin.
52-
*
53-
* @exampleMarkdown
54-
* ```ts filename="codegen.ts"
55-
* import type { CodegenConfig } from '@graphql-codegen/cli';
56-
*
57-
* const config: CodegenConfig = {
58-
* // ...
59-
* generates: {
60-
* 'path/to/file': {
61-
* // plugins...
62-
* config: {
63-
* preResolveTypes: false
64-
* },
65-
* },
66-
* },
67-
* };
68-
* export default config;
69-
* ```
70-
*/
71-
preResolveTypes?: boolean;
7247
/**
7348
* @default false
7449
* @description Avoid adding `__typename` for root types. This is ignored when a selection explicitly specifies `__typename`.
@@ -245,7 +220,6 @@ export class BaseDocumentsVisitor<
245220
exportFragmentSpreadSubTypes: getConfigValue(rawConfig.exportFragmentSpreadSubTypes, false),
246221
enumPrefix: getConfigValue(rawConfig.enumPrefix, true),
247222
enumSuffix: getConfigValue(rawConfig.enumSuffix, true),
248-
preResolveTypes: getConfigValue(rawConfig.preResolveTypes, true),
249223
dedupeOperationSuffix: getConfigValue(rawConfig.dedupeOperationSuffix, false),
250224
omitOperationSuffix: getConfigValue(rawConfig.omitOperationSuffix, false),
251225
skipTypeNameForRoot: getConfigValue(rawConfig.skipTypeNameForRoot, false),

packages/plugins/typescript/operations/src/ts-selection-set-processor.ts

Lines changed: 0 additions & 103 deletions
This file was deleted.

packages/plugins/typescript/operations/src/visitor.ts

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ import {
4646
} from 'graphql';
4747
import { TypeScriptDocumentsPluginConfig } from './config.js';
4848
import { TypeScriptOperationVariablesToObject, SCALARS } from './ts-operation-variables-to-object.js';
49-
import { TypeScriptSelectionSetProcessor } from './ts-selection-set-processor.js';
5049

5150
export interface TypeScriptDocumentsParsedConfig extends ParsedDocumentsConfig {
5251
arrayInputCoercion: boolean;
@@ -88,7 +87,6 @@ export class TypeScriptDocumentsVisitor extends BaseDocumentsVisitor<
8887
avoidOptionals: normalizeAvoidOptionals(getConfigValue(config.avoidOptionals, false)),
8988
immutableTypes: getConfigValue(config.immutableTypes, false),
9089
nonOptionalTypename: getConfigValue(config.nonOptionalTypename, false),
91-
preResolveTypes: getConfigValue(config.preResolveTypes, true),
9290
mergeFragmentTypes: getConfigValue(config.mergeFragmentTypes, false),
9391
allowUndefinedQueryVariables: getConfigValue(config.allowUndefinedQueryVariables, false),
9492
enumType: getConfigValue(config.enumType, 'string-literal'),
@@ -105,22 +103,9 @@ export class TypeScriptDocumentsVisitor extends BaseDocumentsVisitor<
105103
this._outputPath = outputPath;
106104
autoBind(this);
107105

108-
const preResolveTypes = getConfigValue(config.preResolveTypes, true);
109106
const defaultMaybeValue = 'T | null';
110107
const maybeValue = getConfigValue(config.maybeValue, defaultMaybeValue);
111108

112-
const wrapOptional = (type: string) => {
113-
if (preResolveTypes === true) {
114-
return maybeValue.replace('T', type);
115-
}
116-
const prefix = this.config.namespacedImportName ? `${this.config.namespacedImportName}.` : '';
117-
return `${prefix}Maybe<${type}>`;
118-
};
119-
const wrapArray = (type: string) => {
120-
const listModifier = this.config.immutableTypes ? 'ReadonlyArray' : 'Array';
121-
return `${listModifier}<${type}>`;
122-
};
123-
124109
const allFragments: LoadedFragment[] = [
125110
...(documentNode.definitions.filter(d => d.kind === Kind.FRAGMENT_DEFINITION) as FragmentDefinitionNode[]).map(
126111
fragmentDef => ({
@@ -144,14 +129,18 @@ export class TypeScriptDocumentsVisitor extends BaseDocumentsVisitor<
144129
formatNamedField: ({ name, isOptional }) => {
145130
return (this.config.immutableTypes ? `readonly ${name}` : name) + (isOptional ? '?' : '');
146131
},
147-
wrapTypeWithModifiers(baseType, type) {
148-
return wrapTypeWithModifiers(baseType, type, { wrapOptional, wrapArray });
132+
wrapTypeWithModifiers: (baseType, type) => {
133+
return wrapTypeWithModifiers(baseType, type, {
134+
wrapOptional: type => maybeValue.replace('T', type),
135+
wrapArray: type => {
136+
const listModifier = this.config.immutableTypes ? 'ReadonlyArray' : 'Array';
137+
return `${listModifier}<${type}>`;
138+
},
139+
});
149140
},
150141
printFieldsOnNewLines: this.config.printFieldsOnNewLines,
151142
};
152-
const processor = new (preResolveTypes ? PreResolveTypesProcessor : TypeScriptSelectionSetProcessor)(
153-
processorConfig
154-
);
143+
const processor = new PreResolveTypesProcessor(processorConfig);
155144
this.setSelectionSetHandler(
156145
new SelectionSetToObject(
157146
processor,

0 commit comments

Comments
 (0)