Skip to content

Commit e8914dd

Browse files
committed
better names
1 parent 189d510 commit e8914dd

1 file changed

Lines changed: 9 additions & 8 deletions

File tree

lib/src/main/java/graphql/nadel/engine/transform/NadelNoInterfaceToObjectFragmentExpansionTransform.kt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class NadelNoInterfaceToObjectFragmentExpansionTransform : NadelTransform<State>
4040
data class State(
4141
val aliasHelper: NadelAliasHelper,
4242
val exposedOverallImplNames: Set<String>,
43-
val widenToOverallNames: List<String>,
43+
val allUnderlyingMembersAsOverallNames: List<String>,
4444
val relaxedFieldResultKey: String,
4545
)
4646

@@ -80,7 +80,7 @@ class NadelNoInterfaceToObjectFragmentExpansionTransform : NadelTransform<State>
8080
return State(
8181
aliasHelper = NadelAliasHelper.forField(tag = "abstract_member", field = parent),
8282
exposedOverallImplNames = relaxationContext.exposedOverallImplNames,
83-
widenToOverallNames = relaxationContext.widenToOverallNames,
83+
allUnderlyingMembersAsOverallNames = relaxationContext.allUnderlyingMembersAsOverallNames,
8484
relaxedFieldResultKey = overallField.resultKey,
8585
)
8686
}
@@ -95,15 +95,15 @@ class NadelNoInterfaceToObjectFragmentExpansionTransform : NadelTransform<State>
9595
state: State,
9696
transformServiceExecutionContext: NadelTransformServiceExecutionContext?,
9797
): NadelTransformFieldResult {
98-
// Widen to all members so graphql-java prints the field bare.
98+
// Widen objectTypeNames to cover every underlying member so graphql-java prints the field bare.
9999
val bareField = field.toBuilder()
100100
.clearObjectTypesNames()
101-
.objectTypeNames(state.widenToOverallNames)
101+
.objectTypeNames(state.allUnderlyingMembersAsOverallNames)
102102
.build()
103103

104104
// Aliased __typename (also bare) so the result side can tell each node's concrete type.
105105
val typeNameField = newNormalizedField()
106-
.objectTypeNames(state.widenToOverallNames)
106+
.objectTypeNames(state.allUnderlyingMembersAsOverallNames)
107107
.alias(state.aliasHelper.typeNameResultKey)
108108
.fieldName(Introspection.TypeNameMetaFieldDef.name)
109109
.build()
@@ -217,15 +217,16 @@ private fun computeAbstractTypeRelaxationContext(
217217
return null
218218
}
219219

220-
val widenToOverallNames = underlyingMemberNames.map { executionBlueprint.getOverallTypeName(service, it) }
220+
// Every underlying member (incl. hidden ones), named in overall terms so it can go on the overall ENF;
221+
val allUnderlyingMembersAsOverallNames = underlyingMemberNames.map { executionBlueprint.getOverallTypeName(service, it) }
221222

222223
return NadelAbstractTypeRelaxationContext(
223224
exposedOverallImplNames = exposedOverallImplNames,
224-
widenToOverallNames = widenToOverallNames,
225+
allUnderlyingMembersAsOverallNames = allUnderlyingMembersAsOverallNames,
225226
)
226227
}
227228

228229
private data class NadelAbstractTypeRelaxationContext(
229230
val exposedOverallImplNames: Set<String>,
230-
val widenToOverallNames: List<String>,
231+
val allUnderlyingMembersAsOverallNames: List<String>,
231232
)

0 commit comments

Comments
 (0)