@graphql-codegen/visitor-plugin-common 6.2.0-alpha-20251119131248-4aa0bce27decc294509fae591f5c2236858abdbb → 6.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -175,15 +175,17 @@ class BaseResolversVisitor extends base_visitor_js_1.BaseVisitor {
|
|
|
175
175
|
const isMapped = this.config.mappers[typeName];
|
|
176
176
|
const isScalar = this.config.scalars[typeName];
|
|
177
177
|
const hasDefaultMapper = !!this.config.defaultMapper?.type;
|
|
178
|
-
|
|
179
|
-
prev[typeName] = applyWrapper(this.config.rootValueType.type);
|
|
180
|
-
return prev;
|
|
181
|
-
}
|
|
178
|
+
// Check for mappers first, even for root types, to allow overriding rootValueType
|
|
182
179
|
if (isMapped && this.config.mappers[typeName].type && !hasPlaceholder(this.config.mappers[typeName].type)) {
|
|
183
180
|
this.markMapperAsUsed(typeName);
|
|
184
181
|
prev[typeName] = applyWrapper(this.config.mappers[typeName].type);
|
|
182
|
+
return prev;
|
|
183
|
+
}
|
|
184
|
+
if (isRootType) {
|
|
185
|
+
prev[typeName] = applyWrapper(this.config.rootValueType.type);
|
|
186
|
+
return prev;
|
|
185
187
|
}
|
|
186
|
-
|
|
188
|
+
if ((0, graphql_1.isEnumType)(schemaType) && this.config.enumValues[typeName]) {
|
|
187
189
|
const isExternalFile = !!this.config.enumValues[typeName].sourceFile;
|
|
188
190
|
prev[typeName] = isExternalFile
|
|
189
191
|
? this.convertName(this.config.enumValues[typeName].typeIdentifier, {
|
|
@@ -683,7 +683,20 @@ class SelectionSetToObject {
|
|
|
683
683
|
buildParentFieldName(typeName, parentName) {
|
|
684
684
|
// queries/mutations/fragments are guaranteed to be unique type names,
|
|
685
685
|
// so we can skip affixing the field names with typeName
|
|
686
|
-
|
|
686
|
+
if (operationTypes.includes(typeName)) {
|
|
687
|
+
return parentName;
|
|
688
|
+
}
|
|
689
|
+
// When the parent schema type is an interface, use the interface name instead of the concrete type
|
|
690
|
+
// BUT only if we're not inside a fragment (fragments explicitly target specific types)
|
|
691
|
+
const schemaType = this._schema.getType(typeName);
|
|
692
|
+
const isInFragment = parentName.includes('Fragment');
|
|
693
|
+
if ((0, graphql_1.isObjectType)(schemaType) &&
|
|
694
|
+
this._parentSchemaType &&
|
|
695
|
+
(0, graphql_1.isInterfaceType)(this._parentSchemaType) &&
|
|
696
|
+
!isInFragment) {
|
|
697
|
+
return `${parentName}_${this._parentSchemaType.name}`;
|
|
698
|
+
}
|
|
699
|
+
return `${parentName}_${typeName}`;
|
|
687
700
|
}
|
|
688
701
|
}
|
|
689
702
|
exports.SelectionSetToObject = SelectionSetToObject;
|
|
@@ -171,15 +171,17 @@ export class BaseResolversVisitor extends BaseVisitor {
|
|
|
171
171
|
const isMapped = this.config.mappers[typeName];
|
|
172
172
|
const isScalar = this.config.scalars[typeName];
|
|
173
173
|
const hasDefaultMapper = !!this.config.defaultMapper?.type;
|
|
174
|
-
|
|
175
|
-
prev[typeName] = applyWrapper(this.config.rootValueType.type);
|
|
176
|
-
return prev;
|
|
177
|
-
}
|
|
174
|
+
// Check for mappers first, even for root types, to allow overriding rootValueType
|
|
178
175
|
if (isMapped && this.config.mappers[typeName].type && !hasPlaceholder(this.config.mappers[typeName].type)) {
|
|
179
176
|
this.markMapperAsUsed(typeName);
|
|
180
177
|
prev[typeName] = applyWrapper(this.config.mappers[typeName].type);
|
|
178
|
+
return prev;
|
|
179
|
+
}
|
|
180
|
+
if (isRootType) {
|
|
181
|
+
prev[typeName] = applyWrapper(this.config.rootValueType.type);
|
|
182
|
+
return prev;
|
|
181
183
|
}
|
|
182
|
-
|
|
184
|
+
if (isEnumType(schemaType) && this.config.enumValues[typeName]) {
|
|
183
185
|
const isExternalFile = !!this.config.enumValues[typeName].sourceFile;
|
|
184
186
|
prev[typeName] = isExternalFile
|
|
185
187
|
? this.convertName(this.config.enumValues[typeName].typeIdentifier, {
|
|
@@ -679,7 +679,20 @@ export class SelectionSetToObject {
|
|
|
679
679
|
buildParentFieldName(typeName, parentName) {
|
|
680
680
|
// queries/mutations/fragments are guaranteed to be unique type names,
|
|
681
681
|
// so we can skip affixing the field names with typeName
|
|
682
|
-
|
|
682
|
+
if (operationTypes.includes(typeName)) {
|
|
683
|
+
return parentName;
|
|
684
|
+
}
|
|
685
|
+
// When the parent schema type is an interface, use the interface name instead of the concrete type
|
|
686
|
+
// BUT only if we're not inside a fragment (fragments explicitly target specific types)
|
|
687
|
+
const schemaType = this._schema.getType(typeName);
|
|
688
|
+
const isInFragment = parentName.includes('Fragment');
|
|
689
|
+
if (isObjectType(schemaType) &&
|
|
690
|
+
this._parentSchemaType &&
|
|
691
|
+
isInterfaceType(this._parentSchemaType) &&
|
|
692
|
+
!isInFragment) {
|
|
693
|
+
return `${parentName}_${this._parentSchemaType.name}`;
|
|
694
|
+
}
|
|
695
|
+
return `${parentName}_${typeName}`;
|
|
683
696
|
}
|
|
684
697
|
}
|
|
685
698
|
function formatUnion(members) {
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@graphql-codegen/visitor-plugin-common",
|
|
3
|
-
"version": "6.2.
|
|
3
|
+
"version": "6.2.1",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
|
|
6
6
|
},
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@graphql-tools/optimize": "^2.0.0",
|
|
9
|
-
"@graphql-codegen/plugin-helpers": "6.1.0
|
|
9
|
+
"@graphql-codegen/plugin-helpers": "^6.1.0",
|
|
10
10
|
"@graphql-tools/relay-operation-optimizer": "^7.0.0",
|
|
11
11
|
"@graphql-tools/utils": "^10.0.0",
|
|
12
12
|
"auto-bind": "~4.0.0",
|