Skip to content

Releases: apollographql/federation

@apollo/[email protected]

16 Oct 07:30
a1b44aa
Compare
Choose a tag to compare

@apollo/[email protected]

16 Oct 07:30
a1b44aa
Compare
Choose a tag to compare

Patch Changes

  • Fixes edge case where contextual arguments can yield inefficient query plans. Also fixes naming of query plan arguments which can be a problem when using contextual variables in multiple subgraphs (#3140)

  • Ensure all useless fetch groups are removed (#3163)

    When removing "useless" fetch nodes/groups we remove them in-place while still iterating over the same list. This leads to potentially skipping processing of some the children fetch nodes, as when we remove nodes we left shift all remaining children but the iterator keeps the old position unchanged effectively skipping next child.

  • fix: normalize field set selection sets (#3162)

    FieldSet scalar represents a selection set without outer braces. This means that users could potentially specify some selections that could be normalized (i.e. eliminate duplicate field selections, hoist/collapse unnecessary inline fragments, etc). Previously we were using @requires field set selection AS-IS for edge conditions. With this change we will now normalize the FieldSet selections before using them as fetch node conditions.

  • Fixed missing referenced variables in the variableUsages field of fetch operations (#3166)

    Query variables used in fetch operation should be listed in the variableUsages field. However, there was a bug where variables referenced by query-level directives could be missing in the field.

  • Fixed a bug that __typename with applied directives gets lost in fetch operations. (#3164)

    The sibling typename optimization used by query planner simplifies operations by folding __typename selections into their sibling selections. However, that optimization does not account for directives or aliases. The bug was applying the optimization even if the __typename has directives on it, which caused the selection to lose its directives. Now, __typename with directives (or aliases) are excluded from the optimization.

  • Updated dependencies [345661c558773e4eb5d5f0b28464a8d1acdc2a2d, e00e1c9892b48ac89823597113989830877966ef, cc4573471696ef78d04fa00c4cf8e5c50314ba9f, 062572b3253e8640b60a0bf58b83945094b76b6f, df5eb3cb0e2b4802fcd425ab9c23714de2707db3, 1c99cb0dcc6c639ac351210932623ab0bd6907e4]:

@apollo/[email protected]

16 Oct 07:30
a1b44aa
Compare
Choose a tag to compare

Patch Changes

@apollo/[email protected]

16 Oct 07:30
a1b44aa
Compare
Choose a tag to compare

@apollo/[email protected]

16 Oct 07:30
a1b44aa
Compare
Choose a tag to compare

Patch Changes

  • fix: normalize field set selection sets (#3162)

    FieldSet scalar represents a selection set without outer braces. This means that users could potentially specify some selections that could be normalized (i.e. eliminate duplicate field selections, hoist/collapse unnecessary inline fragments, etc). Previously we were using @requires field set selection AS-IS for edge conditions. With this change we will now normalize the FieldSet selections before using them as fetch node conditions.

  • Fixed missing referenced variables in the variableUsages field of fetch operations (#3166)

    Query variables used in fetch operation should be listed in the variableUsages field. However, there was a bug where variables referenced by query-level directives could be missing in the field.

  • Fix fragment generation recursion logic to apply minification on all subselections. (#3158)

  • Fixed a bug that __typename with applied directives gets lost in fetch operations. (#3164)

    The sibling typename optimization used by query planner simplifies operations by folding __typename selections into their sibling selections. However, that optimization does not account for directives or aliases. The bug was applying the optimization even if the __typename has directives on it, which caused the selection to lose its directives. Now, __typename with directives (or aliases) are excluded from the optimization.

@apollo/[email protected]

16 Oct 07:30
a1b44aa
Compare
Choose a tag to compare

@apollo/[email protected]

27 Sep 04:20
ad94371
Compare
Choose a tag to compare

@apollo/[email protected]

27 Sep 04:20
ad94371
Compare
Choose a tag to compare

Patch Changes

  • Fixes handling of a __typename selection during query planning process. (#3156)

    When expanding fragments we were keeping references to the same Fields regardless where those fragments appeared in our original selection set. This was generally fine as in most cases we would have same inline fragment selection sets across whole operation but was causing problems when we were applying another optimization by collapsing those expanded inline fragments creating a new selection set. As a result, if any single field selection (within that fragment) would perform optimization around the usage of __typename, ALL occurrences of that field selection would get that optimization as well.

  • Fixes issue where contextual parameters can have naming collisions if used in multiple subgraphs (#3155)

  • Updated dependencies [2192f355f50db33fe0807d16153f357696b9f190, e1e2605b30efc488b57f62ba43436606a38a3607, 5ac01b534318105e904c1e6598070f753add3bb1]:

@apollo/[email protected]

27 Sep 04:20
ad94371
Compare
Choose a tag to compare

Patch Changes

@apollo/[email protected]

27 Sep 04:20
ad94371
Compare
Choose a tag to compare