in graphql-dgs-reactive/src/main/kotlin/com/netflix/graphql/dgs/reactive/internal/DefaultDgsReactiveGraphQLContextBuilder.kt [32:62]
fun build(dgsRequestData: DgsReactiveRequestData?): Mono<DgsContext> {
val customContext =
if (dgsReactiveCustomContextBuilderWithRequest.isPresent) {
dgsReactiveCustomContextBuilderWithRequest.get().build(
dgsRequestData?.extensions ?: mapOf(),
HttpHeaders.readOnlyHttpHeaders(
dgsRequestData?.headers
?: HttpHeaders(),
),
dgsRequestData?.serverRequest,
)
} else {
Mono.empty()
}
return Mono.deferContextual { context ->
customContext
.map {
ReactiveDgsContext(
it,
dgsRequestData,
context,
)
}.defaultIfEmpty(
ReactiveDgsContext(
requestData = dgsRequestData,
reactorContext = context,
),
)
}
}