@apollo/federation-internals 2.4.2 → 2.4.3

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # CHANGELOG for `@apollo/federation-internals`
2
2
 
3
+ ## 2.4.3
4
+ ### Patch Changes
5
+
6
+
7
+ - Improves the heuristics used to try to reuse the query named fragments in subgraph fetches. Said fragment will be reused ([#2541](https://github.com/apollographql/federation/pull/2541))
8
+ more often, which can lead to smaller subgraph queries (and hence overall faster processing).
9
+
3
10
  ## 2.4.2
4
11
  ### Patch Changes
5
12
 
@@ -108,6 +108,7 @@ export declare class NamedFragmentDefinition extends DirectiveTargetElement<Name
108
108
  readonly name: string;
109
109
  readonly typeCondition: CompositeType;
110
110
  private _selectionSet;
111
+ private readonly selectionSetsAtTypesCache;
111
112
  constructor(schema: Schema, name: string, typeCondition: CompositeType, directives?: Directive<NamedFragmentDefinition>[]);
112
113
  setSelectionSet(selectionSet: SelectionSet): NamedFragmentDefinition;
113
114
  get selectionSet(): SelectionSet;
@@ -115,7 +116,7 @@ export declare class NamedFragmentDefinition extends DirectiveTargetElement<Name
115
116
  collectUsedFragmentNames(collector: Map<string, number>): void;
116
117
  toFragmentDefinitionNode(): FragmentDefinitionNode;
117
118
  canApplyAtType(type: CompositeType): boolean;
118
- private validForSchema;
119
+ selectionSetAtType(type: CompositeType): SelectionSet;
119
120
  toString(indent?: string): string;
120
121
  }
121
122
  export declare class NamedFragments {
@@ -130,6 +131,8 @@ export declare class NamedFragments {
130
131
  has(name: string): boolean;
131
132
  definitions(): readonly NamedFragmentDefinition[];
132
133
  map(mapper: (def: NamedFragmentDefinition) => NamedFragmentDefinition): NamedFragments;
134
+ mapToExpandedSelectionSets(mapper: (selectionSet: SelectionSet) => SelectionSet | undefined, recreateFct?: (frag: NamedFragmentDefinition, newSelectionSet: SelectionSet) => NamedFragmentDefinition): NamedFragments | undefined;
135
+ rebaseOn(schema: Schema): NamedFragments | undefined;
133
136
  validate(variableDefinitions: VariableDefinitions): void;
134
137
  toFragmentDefinitionNodes(): FragmentDefinitionNode[];
135
138
  toString(indent?: string): string;
@@ -164,9 +167,12 @@ export declare class SelectionSet {
164
167
  collectVariables(collector: VariableCollector): void;
165
168
  collectUsedFragmentNames(collector: Map<string, number>): void;
166
169
  optimize(fragments?: NamedFragments): SelectionSet;
170
+ optimizeSelections(fragments: NamedFragments): SelectionSet;
167
171
  expandAllFragments(): SelectionSet;
168
172
  expandFragments(names: string[], updatedFragments: NamedFragments | undefined): SelectionSet;
169
- trimUnsatisfiableBranches(parentType: CompositeType): SelectionSet;
173
+ trimUnsatisfiableBranches(parentType: CompositeType, options?: {
174
+ recursive?: boolean;
175
+ }): SelectionSet;
170
176
  lazyMap(mapper: (selection: Selection) => Selection | readonly Selection[] | SelectionSet | undefined, options?: {
171
177
  fragments?: NamedFragments | null;
172
178
  parentType?: CompositeType;
@@ -182,7 +188,7 @@ export declare class SelectionSet {
182
188
  private triviallyNestedSelectionsForKey;
183
189
  private mergeSameKeySelections;
184
190
  contains(that: SelectionSet): boolean;
185
- diffIfContains(that: SelectionSet): {
191
+ diffWithNamedFragmentIfContained(candidate: NamedFragmentDefinition, parentType: CompositeType): {
186
192
  contains: boolean;
187
193
  diff?: SelectionSet;
188
194
  };
@@ -261,7 +267,9 @@ declare abstract class AbstractSelection<TElement extends OperationElement, TIsL
261
267
  abstract hasDefer(): boolean;
262
268
  abstract expandAllFragments(): TOwnType | readonly Selection[];
263
269
  abstract expandFragments(names: string[], updatedFragments: NamedFragments | undefined): TOwnType | readonly Selection[];
264
- abstract trimUnsatisfiableBranches(parentType: CompositeType): TOwnType | SelectionSet | undefined;
270
+ abstract trimUnsatisfiableBranches(parentType: CompositeType, options?: {
271
+ recursive?: boolean;
272
+ }): TOwnType | SelectionSet | undefined;
265
273
  minus(that: Selection): TOwnType | undefined;
266
274
  protected tryOptimizeSubselectionOnce(_: {
267
275
  parentType: CompositeType;
@@ -308,7 +316,9 @@ export declare class FieldSelection extends AbstractSelection<Field<any>, undefi
308
316
  withNormalizedDefer(normalizer: DeferNormalizer): FieldSelection;
309
317
  hasDefer(): boolean;
310
318
  expandAllFragments(): FieldSelection;
311
- trimUnsatisfiableBranches(_: CompositeType): FieldSelection;
319
+ trimUnsatisfiableBranches(_: CompositeType, options?: {
320
+ recursive?: boolean;
321
+ }): FieldSelection;
312
322
  expandFragments(names: string[], updatedFragments: NamedFragments | undefined): FieldSelection;
313
323
  equals(that: Selection): boolean;
314
324
  contains(that: Selection): boolean;
@@ -349,7 +359,9 @@ declare class InlineFragmentSelection extends FragmentSelection {
349
359
  };
350
360
  withoutDefer(labelsToRemove?: Set<string>): InlineFragmentSelection | SelectionSet;
351
361
  withNormalizedDefer(normalizer: DeferNormalizer): InlineFragmentSelection | SelectionSet;
352
- trimUnsatisfiableBranches(currentType: CompositeType): FragmentSelection | SelectionSet | undefined;
362
+ trimUnsatisfiableBranches(currentType: CompositeType, options?: {
363
+ recursive?: boolean;
364
+ }): FragmentSelection | SelectionSet | undefined;
353
365
  expandAllFragments(): FragmentSelection;
354
366
  expandFragments(names: string[], updatedFragments: NamedFragments | undefined): FragmentSelection;
355
367
  equals(that: Selection): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
@@ -465,8 +465,11 @@ class Operation {
465
465
  }
466
466
  }
467
467
  const toDeoptimize = (0, utils_1.mapEntries)(usages).filter(([_, count]) => count < minUsagesToOptimize).map(([name]) => name);
468
- const newFragments = (_a = optimizedSelection.fragments) === null || _a === void 0 ? void 0 : _a.without(toDeoptimize);
469
- optimizedSelection = optimizedSelection.expandFragments(toDeoptimize, newFragments);
468
+ if (toDeoptimize.length > 0) {
469
+ const newFragments = (_a = optimizedSelection.fragments) === null || _a === void 0 ? void 0 : _a.without(toDeoptimize);
470
+ optimizedSelection = optimizedSelection.expandFragments(toDeoptimize, newFragments);
471
+ optimizedSelection = optimizedSelection.trimUnsatisfiableBranches(optimizedSelection.parentType);
472
+ }
470
473
  return new Operation(this.schema, this.rootKind, optimizedSelection, this.variableDefinitions, this.name);
471
474
  }
472
475
  expandAllFragments() {
@@ -525,9 +528,11 @@ class NamedFragmentDefinition extends definitions_1.DirectiveTargetElement {
525
528
  super(schema, directives);
526
529
  this.name = name;
527
530
  this.typeCondition = typeCondition;
531
+ this.selectionSetsAtTypesCache = new Map();
528
532
  }
529
533
  setSelectionSet(selectionSet) {
530
534
  (0, utils_1.assert)(!this._selectionSet, 'Attempting to set the selection set of a fragment definition already built');
535
+ (0, utils_1.assert)(selectionSet.parentType === this.typeCondition, `Fragment selection set parent is ${selectionSet.parentType} differs from the fragment condition type ${this.typeCondition}`);
531
536
  this._selectionSet = selectionSet;
532
537
  return this;
533
538
  }
@@ -559,25 +564,21 @@ class NamedFragmentDefinition extends definitions_1.DirectiveTargetElement {
559
564
  };
560
565
  }
561
566
  canApplyAtType(type) {
562
- const applyAtType = (0, types_1.sameType)(type, this.typeCondition) || (0, definitions_1.runtimeTypesIntersects)(type, this.typeCondition);
563
- return applyAtType
564
- && this.validForSchema(type.schema());
567
+ return (0, types_1.sameType)(type, this.typeCondition) || (0, definitions_1.runtimeTypesIntersects)(type, this.typeCondition);
565
568
  }
566
- validForSchema(schema) {
567
- if (schema === this.schema()) {
568
- return true;
569
+ selectionSetAtType(type) {
570
+ if ((0, types_1.sameType)(type, this.typeCondition) || (0, definitions_1.isObjectType)(this.typeCondition)) {
571
+ return this.selectionSet;
569
572
  }
570
- const typeInSchema = schema.type(this.typeCondition.name);
571
- if (!typeInSchema || !(0, definitions_1.isCompositeType)(typeInSchema)) {
572
- return false;
573
+ if (!(0, definitions_1.isObjectType)(type)) {
574
+ return this.selectionSet;
573
575
  }
574
- try {
575
- this.selectionSet.rebaseOn(typeInSchema);
576
- return true;
577
- }
578
- catch (e) {
579
- return false;
576
+ let selectionSet = this.selectionSetsAtTypesCache.get(type.name);
577
+ if (!selectionSet) {
578
+ selectionSet = this.selectionSet.trimUnsatisfiableBranches(type, { recursive: false });
579
+ this.selectionSetsAtTypesCache.set(type.name, selectionSet);
580
580
  }
581
+ return selectionSet;
581
582
  }
582
583
  toString(indent) {
583
584
  return (indent !== null && indent !== void 0 ? indent : '') + `fragment ${this.name} on ${this.typeCondition}${this.appliedDirectivesToString()} ${this.selectionSet.toString(false, true, indent)}`;
@@ -640,6 +641,46 @@ class NamedFragments {
640
641
  }
641
642
  return mapped;
642
643
  }
644
+ mapToExpandedSelectionSets(mapper, recreateFct = (f, s) => f.withUpdatedSelectionSet(s)) {
645
+ const fragmentsMap = new Map();
646
+ const removedFragments = new Set();
647
+ for (const fragment of this.definitions()) {
648
+ const mappedSelectionSet = mapper(fragment.selectionSet.expandAllFragments().trimUnsatisfiableBranches(fragment.typeCondition));
649
+ if (!mappedSelectionSet) {
650
+ removedFragments.add(fragment.name);
651
+ continue;
652
+ }
653
+ const otherFragmentsUsages = new Map();
654
+ fragment.collectUsedFragmentNames(otherFragmentsUsages);
655
+ fragmentsMap.set(fragment.name, {
656
+ original: fragment,
657
+ mappedSelectionSet,
658
+ dependsOn: Array.from(otherFragmentsUsages.keys()),
659
+ });
660
+ }
661
+ const mappedFragments = new NamedFragments();
662
+ while (fragmentsMap.size > 0) {
663
+ for (const [name, info] of fragmentsMap) {
664
+ if (info.dependsOn.every((n) => mappedFragments.has(n) || removedFragments.has(n))) {
665
+ const reoptimizedSelectionSet = info.mappedSelectionSet.optimize(mappedFragments);
666
+ mappedFragments.add(recreateFct(info.original, reoptimizedSelectionSet));
667
+ fragmentsMap.delete(name);
668
+ }
669
+ }
670
+ }
671
+ return mappedFragments.isEmpty() ? undefined : mappedFragments;
672
+ }
673
+ rebaseOn(schema) {
674
+ return this.mapToExpandedSelectionSets((s) => {
675
+ const rebasedType = schema.type(s.parentType.name);
676
+ try {
677
+ return rebasedType && (0, definitions_1.isCompositeType)(rebasedType) ? s.rebaseOn(rebasedType) : undefined;
678
+ }
679
+ catch (e) {
680
+ return undefined;
681
+ }
682
+ }, (orig, newSelection) => new NamedFragmentDefinition(schema, orig.name, newSelection.parentType).setSelectionSet(newSelection));
683
+ }
643
684
  validate(variableDefinitions) {
644
685
  for (const fragment of this.fragments.values()) {
645
686
  fragment.selectionSet.validate(variableDefinitions);
@@ -755,6 +796,13 @@ class SelectionSet {
755
796
  if (!fragments || fragments.isEmpty()) {
756
797
  return this;
757
798
  }
799
+ const wrapped = new InlineFragmentSelection(new FragmentElement(this.parentType, this.parentType), this);
800
+ const optimized = wrapped.optimize(fragments);
801
+ return optimized instanceof FragmentSpreadSelection
802
+ ? selectionSetOf(this.parentType, optimized, fragments)
803
+ : optimized.selectionSet;
804
+ }
805
+ optimizeSelections(fragments) {
758
806
  (0, utils_1.assert)(!this.fragments || this.fragments.isEmpty(), `Should not be called on selection that already has named fragments, but got ${this.fragments}`);
759
807
  return this.lazyMap((selection) => selection.optimize(fragments), { fragments });
760
808
  }
@@ -767,8 +815,8 @@ class SelectionSet {
767
815
  }
768
816
  return this.lazyMap((selection) => selection.expandFragments(names, updatedFragments), { fragments: updatedFragments !== null && updatedFragments !== void 0 ? updatedFragments : null });
769
817
  }
770
- trimUnsatisfiableBranches(parentType) {
771
- return this.lazyMap((selection) => selection.trimUnsatisfiableBranches(parentType), { parentType });
818
+ trimUnsatisfiableBranches(parentType, options) {
819
+ return this.lazyMap((selection) => selection.trimUnsatisfiableBranches(parentType, options), { parentType });
772
820
  }
773
821
  lazyMap(mapper, options) {
774
822
  var _a;
@@ -881,9 +929,14 @@ class SelectionSet {
881
929
  }
882
930
  return true;
883
931
  }
884
- diffIfContains(that) {
932
+ diffWithNamedFragmentIfContained(candidate, parentType) {
933
+ const that = candidate.selectionSetAtType(parentType);
885
934
  if (this.contains(that)) {
886
- const diff = this.minus(that);
935
+ let updatedThis = this.expandFragments([candidate.name], this.fragments);
936
+ if (updatedThis !== this) {
937
+ updatedThis = updatedThis.trimUnsatisfiableBranches(parentType);
938
+ }
939
+ const diff = updatedThis.minus(that);
887
940
  return { contains: true, diff: diff.isEmpty() ? undefined : diff };
888
941
  }
889
942
  return { contains: false };
@@ -1329,7 +1382,7 @@ class FieldSelection extends AbstractSelection {
1329
1382
  return this.element.key();
1330
1383
  }
1331
1384
  optimize(fragments) {
1332
- let optimizedSelection = this.selectionSet ? this.selectionSet.optimize(fragments) : undefined;
1385
+ let optimizedSelection = this.selectionSet ? this.selectionSet.optimizeSelections(fragments) : undefined;
1333
1386
  const fieldBaseType = (0, definitions_1.baseType)(this.element.definition.type);
1334
1387
  if ((0, definitions_1.isCompositeType)(fieldBaseType) && optimizedSelection) {
1335
1388
  const optimized = this.tryOptimizeSubselectionWithFragments({
@@ -1348,7 +1401,7 @@ class FieldSelection extends AbstractSelection {
1348
1401
  tryOptimizeSubselectionOnce({ parentType, subSelection, candidates, fragments, }) {
1349
1402
  let optimizedSelection = subSelection;
1350
1403
  for (const candidate of candidates) {
1351
- const { contains, diff } = optimizedSelection.diffIfContains(candidate.selectionSet);
1404
+ const { contains, diff } = optimizedSelection.diffWithNamedFragmentIfContained(candidate, parentType);
1352
1405
  if (contains) {
1353
1406
  const spread = new FragmentSpreadSelection(parentType, fragments, candidate, []);
1354
1407
  optimizedSelection = diff
@@ -1433,15 +1486,15 @@ class FieldSelection extends AbstractSelection {
1433
1486
  expandAllFragments() {
1434
1487
  return this.mapToSelectionSet((s) => s.expandAllFragments());
1435
1488
  }
1436
- trimUnsatisfiableBranches(_) {
1437
- var _a;
1489
+ trimUnsatisfiableBranches(_, options) {
1490
+ var _a, _b;
1438
1491
  if (!this.selectionSet) {
1439
1492
  return this;
1440
1493
  }
1441
1494
  const base = (0, definitions_1.baseType)(this.element.definition.type);
1442
1495
  (0, utils_1.assert)((0, definitions_1.isCompositeType)(base), () => `Field ${this.element} should not have a sub-selection`);
1443
- const trimmed = this.mapToSelectionSet((s) => s.trimUnsatisfiableBranches(base));
1444
- if ((_a = trimmed.selectionSet) === null || _a === void 0 ? void 0 : _a.isEmpty()) {
1496
+ const trimmed = ((_a = options === null || options === void 0 ? void 0 : options.recursive) !== null && _a !== void 0 ? _a : true) ? this.mapToSelectionSet((s) => s.trimUnsatisfiableBranches(base)) : this;
1497
+ if ((_b = trimmed.selectionSet) === null || _b === void 0 ? void 0 : _b.isEmpty()) {
1445
1498
  return trimmed.withUpdatedSelectionSet(selectionSetOfElement(new Field(base.typenameField(), undefined, [new definitions_1.Directive('include', { 'if': false })])));
1446
1499
  }
1447
1500
  else {
@@ -1575,7 +1628,7 @@ class InlineFragmentSelection extends FragmentSelection {
1575
1628
  };
1576
1629
  }
1577
1630
  optimize(fragments) {
1578
- let optimizedSelection = this.selectionSet.optimize(fragments);
1631
+ let optimizedSelection = this.selectionSet.optimizeSelections(fragments);
1579
1632
  const typeCondition = this.element.typeCondition;
1580
1633
  if (typeCondition) {
1581
1634
  const optimized = this.tryOptimizeSubselectionWithFragments({
@@ -1595,7 +1648,7 @@ class InlineFragmentSelection extends FragmentSelection {
1595
1648
  tryOptimizeSubselectionOnce({ parentType, subSelection, candidates, fragments, }) {
1596
1649
  let optimizedSelection = subSelection;
1597
1650
  for (const candidate of candidates) {
1598
- const { contains, diff } = optimizedSelection.diffIfContains(candidate.selectionSet);
1651
+ const { contains, diff } = optimizedSelection.diffWithNamedFragmentIfContained(candidate, parentType);
1599
1652
  if (contains) {
1600
1653
  if (!diff && (0, types_1.sameType)(this.element.typeCondition, candidate.typeCondition)) {
1601
1654
  let spreadDirectives = this.element.appliedDirectives;
@@ -1645,12 +1698,13 @@ class InlineFragmentSelection extends FragmentSelection {
1645
1698
  ? this
1646
1699
  : this.withUpdatedComponents(newElement, newSelection);
1647
1700
  }
1648
- trimUnsatisfiableBranches(currentType) {
1649
- var _a, _b;
1701
+ trimUnsatisfiableBranches(currentType, options) {
1702
+ var _a, _b, _c;
1703
+ const recursive = (_a = options === null || options === void 0 ? void 0 : options.recursive) !== null && _a !== void 0 ? _a : true;
1650
1704
  const thisCondition = this.element.typeCondition;
1651
1705
  if (this.element.appliedDirectives.length === 0) {
1652
1706
  if (!thisCondition || currentType === this.element.typeCondition) {
1653
- const trimmed = this.selectionSet.trimUnsatisfiableBranches(currentType);
1707
+ const trimmed = this.selectionSet.trimUnsatisfiableBranches(currentType, options);
1654
1708
  return trimmed.isEmpty() ? undefined : trimmed;
1655
1709
  }
1656
1710
  if ((0, definitions_1.isObjectType)(currentType)) {
@@ -1658,18 +1712,21 @@ class InlineFragmentSelection extends FragmentSelection {
1658
1712
  return undefined;
1659
1713
  }
1660
1714
  else {
1661
- const trimmed = this.selectionSet.trimUnsatisfiableBranches(currentType);
1715
+ const trimmed = this.selectionSet.trimUnsatisfiableBranches(currentType, options);
1662
1716
  return trimmed.isEmpty() ? undefined : trimmed;
1663
1717
  }
1664
1718
  }
1665
1719
  }
1666
- const trimmedSelectionSet = this.selectionSet.trimUnsatisfiableBranches((_a = this.element.typeCondition) !== null && _a !== void 0 ? _a : this.parentType);
1720
+ if (!recursive) {
1721
+ return this;
1722
+ }
1723
+ const trimmedSelectionSet = this.selectionSet.trimUnsatisfiableBranches((_b = this.element.typeCondition) !== null && _b !== void 0 ? _b : this.parentType);
1667
1724
  if (trimmedSelectionSet.isEmpty()) {
1668
1725
  if (this.element.appliedDirectives.length === 0) {
1669
1726
  return undefined;
1670
1727
  }
1671
1728
  else {
1672
- return this.withUpdatedSelectionSet(selectionSetOfElement(new Field(((_b = this.element.typeCondition) !== null && _b !== void 0 ? _b : this.parentType).typenameField(), undefined, [new definitions_1.Directive('include', { 'if': false })])));
1729
+ return this.withUpdatedSelectionSet(selectionSetOfElement(new Field(((_c = this.element.typeCondition) !== null && _c !== void 0 ? _c : this.parentType).typenameField(), undefined, [new definitions_1.Directive('include', { 'if': false })])));
1673
1730
  }
1674
1731
  }
1675
1732
  if (this.element.appliedDirectives.length === 0 && (0, definitions_1.isAbstractType)(thisCondition)) {