fun build()

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,
                    ),
                )
        }
    }