Skip to content

Bug: HoistField does not support List in path #3906

@ntziolis

Description

@ntziolis

When hoisting a field and the path to the field contains a list the resulting schema ignores that there was a list in the path.

To Reproduce
Given the following schema:

type Query {
   data: [Wrapper!]!
}

type Wrapper {
   value: String!
}

Using the following configuration for hoist field:

new HoistField('Query', ['data', 'value'], 'data');

The result is:

type Query {
   data: String!
}

Expected behavior
The hoist field transform should instead generate the followings schema

type Query {
   data: [String!]!
}

Note:

  • This should also work when there are multiple levels of lists (while supporting a single level of list would be the most crucial to support)

Additional context

Use case:

  • We often find legacy APIs that wrap list result data in above described structures
  • We use the HoistField transform (and others) to remove unnecessary nesting to provide a clean GraphQL API to consume

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions