coursera/naptime

Union resolution results in an extra level of nesting

Opened this issue · 0 comments

jnwng commented

in a query like this:

query ($bundleName: String!) {
  RapidashAppsV1Resource {
    bundleName(bundleName: $bundleName, limit: 1) {
      elements {
        deploys: deployIds(limit: 10) {
          elements {
            id
            buildId {
              buildDetails {
                ... on org_coursera_rapidash_ProductionBuildDetailsMember {
          -->  org_coursera_rapidash_ProductionBuildDetails {
                    commitId {
                      summary
                      message
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

the nested field org_coursera_rapidash_ProductionBuildDetails is unnecessary since we've already subselected the particular union type via the inline fragment. at this point, we should have resolved the RapidashBuildDetails. ideally this should look like:

buildDetails {
  ... on org_coursera_rapidash_ProductionBuildDetailsMember {
    commitId {
      summary
      message
    }
  }
}

or (stretch goal) renaming the union as well.

buildDetails {
  ... on productionBuildDetails {
    commitId {
      summary
      message
    }
  }
}

/cc @bryan-coursera