@graphql-codegen/visitor-plugin-common 6.0.0-alpha-20250702094259-330e4c0c023358d9861caa216bc6e850fd799b01 → 6.0.0-alpha-20250803135812-ba3d434d95a043ee91b84ec36aaff30459a29599

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.
@@ -96,12 +96,8 @@ class BaseResolversVisitor extends base_visitor_js_1.BaseVisitor {
96
96
  shouldInclude: namedType => !(0, graphql_1.isEnumType)(namedType),
97
97
  onNotMappedObjectType: ({ typeName, initialType }) => {
98
98
  let result = initialType;
99
- const federationReferenceTypes = this._federation.printReferenceSelectionSets({
100
- typeName,
101
- baseFederationType: `${this.convertName('FederationTypes')}['${typeName}']`,
102
- });
103
- if (federationReferenceTypes) {
104
- result += ` | ${federationReferenceTypes}`;
99
+ if (this._federation.getMeta()[typeName]?.referenceSelectionSetsString) {
100
+ result += ` | ${this.convertName('FederationReferenceTypes')}['${typeName}']`;
105
101
  }
106
102
  return result;
107
103
  },
@@ -474,6 +470,27 @@ class BaseResolversVisitor extends base_visitor_js_1.BaseVisitor {
474
470
  })
475
471
  .join('\n')).string;
476
472
  }
473
+ buildFederationReferenceTypes() {
474
+ const federationMeta = this._federation.getMeta();
475
+ if (Object.keys(federationMeta).length === 0) {
476
+ return '';
477
+ }
478
+ const declarationKind = 'type';
479
+ return new utils_js_1.DeclarationBlock(this._declarationBlockConfig)
480
+ .export()
481
+ .asKind(declarationKind)
482
+ .withName(this.convertName('FederationReferenceTypes'))
483
+ .withComment('Mapping of federation reference types')
484
+ .withBlock(Object.entries(federationMeta)
485
+ .map(([typeName, { referenceSelectionSetsString }]) => {
486
+ if (!referenceSelectionSetsString) {
487
+ return undefined;
488
+ }
489
+ return (0, utils_js_1.indent)(`${typeName}: ${referenceSelectionSetsString}${this.getPunctuation(declarationKind)}`);
490
+ })
491
+ .filter(v => v)
492
+ .join('\n')).string;
493
+ }
477
494
  get schema() {
478
495
  return this._schema;
479
496
  }
@@ -683,12 +700,6 @@ class BaseResolversVisitor extends base_visitor_js_1.BaseVisitor {
683
700
  argsType = this.applyOptionalFields(argsType, original.arguments);
684
701
  }
685
702
  }
686
- const parentTypeSignature = this._federation.transformFieldParentType({
687
- fieldNode: original,
688
- parentType,
689
- parentTypeSignature: this.getParentTypeForSignature(node),
690
- federationTypeSignature: 'FederationType',
691
- });
692
703
  const { mappedTypeKey, resolverType } = (() => {
693
704
  const baseType = (0, utils_js_1.getBaseTypeNode)(original.type);
694
705
  const realType = baseType.name.value;
@@ -722,14 +733,16 @@ class BaseResolversVisitor extends base_visitor_js_1.BaseVisitor {
722
733
  name: typeName,
723
734
  modifier: avoidResolverOptionals ? '' : '?',
724
735
  type: resolverType,
725
- genericTypes: [mappedTypeKey, parentTypeSignature, contextType, argsType].filter(f => f),
736
+ genericTypes: [mappedTypeKey, this.getParentTypeForSignature(node), contextType, argsType].filter(f => f),
726
737
  };
727
738
  if (this._federation.isResolveReferenceField(node)) {
728
739
  if (!this._federation.getMeta()[parentType.name].hasResolveReference) {
729
740
  return { value: '', meta };
730
741
  }
742
+ const resultType = `${mappedTypeKey} | FederationReferenceType`;
743
+ const referenceType = 'FederationReferenceType';
731
744
  signature.type = 'ReferenceResolver';
732
- signature.genericTypes = [mappedTypeKey, parentTypeSignature, contextType];
745
+ signature.genericTypes = [resultType, referenceType, contextType];
733
746
  meta.federation = { isResolveReference: true };
734
747
  }
735
748
  return {
@@ -839,7 +852,7 @@ class BaseResolversVisitor extends base_visitor_js_1.BaseVisitor {
839
852
  ];
840
853
  this._federation.addFederationTypeGenericIfApplicable({
841
854
  genericTypes,
842
- federationTypesType: this.convertName('FederationTypes'),
855
+ federationTypesType: this.convertName('FederationReferenceTypes'),
843
856
  typeName,
844
857
  });
845
858
  const block = new utils_js_1.DeclarationBlock(this._declarationBlockConfig)
@@ -982,7 +995,7 @@ class BaseResolversVisitor extends base_visitor_js_1.BaseVisitor {
982
995
  ];
983
996
  this._federation.addFederationTypeGenericIfApplicable({
984
997
  genericTypes,
985
- federationTypesType: this.convertName('FederationTypes'),
998
+ federationTypesType: this.convertName('FederationReferenceTypes'),
986
999
  typeName,
987
1000
  });
988
1001
  const possibleTypes = implementingTypes.map(name => `'${name}'`).join(' | ') || 'null';
@@ -92,12 +92,8 @@ export class BaseResolversVisitor extends BaseVisitor {
92
92
  shouldInclude: namedType => !isEnumType(namedType),
93
93
  onNotMappedObjectType: ({ typeName, initialType }) => {
94
94
  let result = initialType;
95
- const federationReferenceTypes = this._federation.printReferenceSelectionSets({
96
- typeName,
97
- baseFederationType: `${this.convertName('FederationTypes')}['${typeName}']`,
98
- });
99
- if (federationReferenceTypes) {
100
- result += ` | ${federationReferenceTypes}`;
95
+ if (this._federation.getMeta()[typeName]?.referenceSelectionSetsString) {
96
+ result += ` | ${this.convertName('FederationReferenceTypes')}['${typeName}']`;
101
97
  }
102
98
  return result;
103
99
  },
@@ -470,6 +466,27 @@ export class BaseResolversVisitor extends BaseVisitor {
470
466
  })
471
467
  .join('\n')).string;
472
468
  }
469
+ buildFederationReferenceTypes() {
470
+ const federationMeta = this._federation.getMeta();
471
+ if (Object.keys(federationMeta).length === 0) {
472
+ return '';
473
+ }
474
+ const declarationKind = 'type';
475
+ return new DeclarationBlock(this._declarationBlockConfig)
476
+ .export()
477
+ .asKind(declarationKind)
478
+ .withName(this.convertName('FederationReferenceTypes'))
479
+ .withComment('Mapping of federation reference types')
480
+ .withBlock(Object.entries(federationMeta)
481
+ .map(([typeName, { referenceSelectionSetsString }]) => {
482
+ if (!referenceSelectionSetsString) {
483
+ return undefined;
484
+ }
485
+ return indent(`${typeName}: ${referenceSelectionSetsString}${this.getPunctuation(declarationKind)}`);
486
+ })
487
+ .filter(v => v)
488
+ .join('\n')).string;
489
+ }
473
490
  get schema() {
474
491
  return this._schema;
475
492
  }
@@ -679,12 +696,6 @@ export class BaseResolversVisitor extends BaseVisitor {
679
696
  argsType = this.applyOptionalFields(argsType, original.arguments);
680
697
  }
681
698
  }
682
- const parentTypeSignature = this._federation.transformFieldParentType({
683
- fieldNode: original,
684
- parentType,
685
- parentTypeSignature: this.getParentTypeForSignature(node),
686
- federationTypeSignature: 'FederationType',
687
- });
688
699
  const { mappedTypeKey, resolverType } = (() => {
689
700
  const baseType = getBaseTypeNode(original.type);
690
701
  const realType = baseType.name.value;
@@ -718,14 +729,16 @@ export class BaseResolversVisitor extends BaseVisitor {
718
729
  name: typeName,
719
730
  modifier: avoidResolverOptionals ? '' : '?',
720
731
  type: resolverType,
721
- genericTypes: [mappedTypeKey, parentTypeSignature, contextType, argsType].filter(f => f),
732
+ genericTypes: [mappedTypeKey, this.getParentTypeForSignature(node), contextType, argsType].filter(f => f),
722
733
  };
723
734
  if (this._federation.isResolveReferenceField(node)) {
724
735
  if (!this._federation.getMeta()[parentType.name].hasResolveReference) {
725
736
  return { value: '', meta };
726
737
  }
738
+ const resultType = `${mappedTypeKey} | FederationReferenceType`;
739
+ const referenceType = 'FederationReferenceType';
727
740
  signature.type = 'ReferenceResolver';
728
- signature.genericTypes = [mappedTypeKey, parentTypeSignature, contextType];
741
+ signature.genericTypes = [resultType, referenceType, contextType];
729
742
  meta.federation = { isResolveReference: true };
730
743
  }
731
744
  return {
@@ -835,7 +848,7 @@ export class BaseResolversVisitor extends BaseVisitor {
835
848
  ];
836
849
  this._federation.addFederationTypeGenericIfApplicable({
837
850
  genericTypes,
838
- federationTypesType: this.convertName('FederationTypes'),
851
+ federationTypesType: this.convertName('FederationReferenceTypes'),
839
852
  typeName,
840
853
  });
841
854
  const block = new DeclarationBlock(this._declarationBlockConfig)
@@ -978,7 +991,7 @@ export class BaseResolversVisitor extends BaseVisitor {
978
991
  ];
979
992
  this._federation.addFederationTypeGenericIfApplicable({
980
993
  genericTypes,
981
- federationTypesType: this.convertName('FederationTypes'),
994
+ federationTypesType: this.convertName('FederationReferenceTypes'),
982
995
  typeName,
983
996
  });
984
997
  const possibleTypes = implementingTypes.map(name => `'${name}'`).join(' | ') || 'null';
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@graphql-codegen/visitor-plugin-common",
3
- "version": "6.0.0-alpha-20250702094259-330e4c0c023358d9861caa216bc6e850fd799b01",
3
+ "version": "6.0.0-alpha-20250803135812-ba3d434d95a043ee91b84ec36aaff30459a29599",
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.0.0-alpha-20250702094259-330e4c0c023358d9861caa216bc6e850fd799b01",
9
+ "@graphql-codegen/plugin-helpers": "6.0.0-alpha-20250803135812-ba3d434d95a043ee91b84ec36aaff30459a29599",
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",
@@ -737,6 +737,7 @@ export declare class BaseResolversVisitor<TRawConfig extends RawResolversConfig
737
737
  buildResolversUnionTypes(): string;
738
738
  buildResolversInterfaceTypes(): string;
739
739
  buildFederationTypes(): string;
740
+ buildFederationReferenceTypes(): string;
740
741
  get schema(): GraphQLSchema;
741
742
  get defaultMapperType(): string;
742
743
  get unusedMappers(): string[];
@@ -737,6 +737,7 @@ export declare class BaseResolversVisitor<TRawConfig extends RawResolversConfig
737
737
  buildResolversUnionTypes(): string;
738
738
  buildResolversInterfaceTypes(): string;
739
739
  buildFederationTypes(): string;
740
+ buildFederationReferenceTypes(): string;
740
741
  get schema(): GraphQLSchema;
741
742
  get defaultMapperType(): string;
742
743
  get unusedMappers(): string[];