Skip to content

Releases: ardatan/graphql-tools

May 02, 2024

02 May 15:13
0d93831
Compare
Choose a tag to compare

@graphql-tools/[email protected]

Patch Changes

  • 361052a Thanks @ardatan! - Small fix: check all final types to find orphan interfaces

May 02, 2024

02 May 14:46
a6f0490
Compare
Choose a tag to compare

@graphql-tools/[email protected]

Patch Changes

  • #6126 680351e Thanks @ardatan! - When there is a Node subschema, and others to resolve the rest of the entities by using a union resolver as in Federation like below, it was failing. This version fixes that issue.

    query {
      node(id: "1") {
        id # Fetches from Node
        ... on User {
          name # Fetches from User
        }
      }
    }
    type Query {
      node(id: ID!): Node
    }
    
    interface Node {
      id: ID!
    }
    
    type User implements Node {
      id: ID!
    }
    
    type Post implements Node {
      id: ID!
    }
    # User subschema
    scalar _Any
    type Query {
      _entities(representations: [_Any!]!): [_Entity]!
    }
    union _Entity = User
    interface Node {
      id: ID!
    }
    type User implements Node {
      id: ID!
      name: String!
    }
    # Post subschema
    scalar _Any
    union _Entity = Post
    type Query {
      _entities(representations: [_Any!]!): [_Entity]!
    }
    interface Node {
      id: ID!
    }
    type Post implements Node {
      id: ID!
      title: String!
    }

@graphql-tools/[email protected]

Patch Changes

  • #6126 680351e Thanks @ardatan! - When there is a Node subschema, and others to resolve the rest of the entities by using a union resolver as in Federation like below, it was failing. This version fixes that issue.

    query {
      node(id: "1") {
        id # Fetches from Node
        ... on User {
          name # Fetches from User
        }
      }
    }
    type Query {
      node(id: ID!): Node
    }
    
    interface Node {
      id: ID!
    }
    
    type User implements Node {
      id: ID!
    }
    
    type Post implements Node {
      id: ID!
    }
    # User subschema
    scalar _Any
    type Query {
      _entities(representations: [_Any!]!): [_Entity]!
    }
    union _Entity = User
    interface Node {
      id: ID!
    }
    type User implements Node {
      id: ID!
      name: String!
    }
    # Post subschema
    scalar _Any
    union _Entity = Post
    type Query {
      _entities(representations: [_Any!]!): [_Entity]!
    }
    interface Node {
      id: ID!
    }
    type Post implements Node {
      id: ID!
      title: String!
    }
  • Updated dependencies [680351e]:

@graphql-tools/[email protected]

Patch Changes

  • #6126 680351e Thanks @ardatan! - When there is a Node subschema, and others to resolve the rest of the entities by using a union resolver as in Federation like below, it was failing. This version fixes that issue.

    query {
      node(id: "1") {
        id # Fetches from Node
        ... on User {
          name # Fetches from User
        }
      }
    }
    type Query {
      node(id: ID!): Node
    }
    
    interface Node {
      id: ID!
    }
    
    type User implements Node {
      id: ID!
    }
    
    type Post implements Node {
      id: ID!
    }
    # User subschema
    scalar _Any
    type Query {
      _entities(representations: [_Any!]!): [_Entity]!
    }
    union _Entity = User
    interface Node {
      id: ID!
    }
    type User implements Node {
      id: ID!
      name: String!
    }
    # Post subschema
    scalar _Any
    union _Entity = Post
    type Query {
      _entities(representations: [_Any!]!): [_Entity]!
    }
    interface Node {
      id: ID!
    }
    type Post implements Node {
      id: ID!
      title: String!
    }
  • Updated dependencies [680351e]:

May 02, 2024

02 May 09:47
1ebf5e5
Compare
Choose a tag to compare

@graphql-tools/[email protected]

Patch Changes

@graphql-tools/[email protected]

Patch Changes

  • 98b2795 Thanks @ardatan! - Improvements on unavailable field selection, and key object projection

May 02, 2024

02 May 09:19
6a1e02f
Compare
Choose a tag to compare

@graphql-tools/[email protected]

Patch Changes

@graphql-tools/[email protected]

Patch Changes

@graphql-tools/[email protected]

Patch Changes

April 30, 2024

30 Apr 12:05
36913ee
Compare
Choose a tag to compare

@graphql-tools/[email protected]

Patch Changes

  • #6111 a06dbd2 Thanks @lesleydreyer! - Fix directive merging when directive name is inherited from object prototype (i.e. toString)

@graphql-tools/[email protected]

Patch Changes

  • #6117 67a9c49 Thanks @ardatan! - Add field as an unavailable field only if it is not able to resolve by any other subschema;

    When the following query is sent to the gateway with the following subschemas, the gateway should resolve Category.details from A Subschema using Product resolver instead of trying to resolve by using non-existing Category resolver from A Subschema.

    Previously, the query planner decides to resolve Category.details after resolving Category from C Subschema. But it will be too late to resolve details because Category is not resolvable in A Subschema.

    So the requests for Category.details and the rest of Category should be different.

    So for the following query, we expect a full result;

    query {
      productFromA(id: "1") {
        id
        name
        category {
          id
          name
          details
        }
      }
    }
    # A Subschema
    type Query {
      productFromA(id: ID): Product
      # No category resolver is present
    }
    
    type Product {
      id: ID
      category: Category
    }
    
    type Category {
      details: CategoryDetails
    }
    # B Subschema
    type Query {
      productFromB(id: ID): Product
    }
    type Product {
      id: ID
      name: String
      category: Category
    }
    type Category {
      id: ID
    }
    # C Subschema
    type Query {
      categoryFromC(id: ID): Category
    }
    
    type Category {
      id: ID
      name: String
    }
  • Updated dependencies [a06dbd2]:

April 29, 2024

29 Apr 15:33
9d79ba2
Compare
Choose a tag to compare

@graphql-tools/[email protected]

Patch Changes

@graphql-tools/[email protected]

Patch Changes

@graphql-tools/[email protected]

Patch Changes

April 29, 2024

29 Apr 14:09
663130d
Compare
Choose a tag to compare

@graphql-tools/[email protected]

Patch Changes

April 29, 2024

29 Apr 12:19
7ef2ad7
Compare
Choose a tag to compare

@graphql-tools/[email protected]

Patch Changes

@graphql-tools/[email protected]

Minor Changes

Patch Changes

  • #6105 5567347 Thanks @ardatan! - Handle fields in unmerged types as both isolated and non-isolated fields

April 26, 2024

26 Apr 23:42
7014a4a
Compare
Choose a tag to compare

@graphql-tools/[email protected]

Patch Changes

April 26, 2024

26 Apr 13:37
35a3c31
Compare
Choose a tag to compare

@graphql-tools/[email protected]

Patch Changes

  • af7be09 Thanks @ardatan! - Hotfix: do not use nullable and nonNullable prefixes if field names don't match