forked from loafle/openapi-generator-original
Fix HTTP client configuration object freezing issue on iOS (#11012)
This commit is contained in:
parent
836e40f1d2
commit
3719035787
@ -34,15 +34,20 @@ import {{packageName}}.auth.*
|
|||||||
KotlinxSerializer(json).ignoreOutgoingContent()
|
KotlinxSerializer(json).ignoreOutgoingContent()
|
||||||
}
|
}
|
||||||
|
|
||||||
private val defaultHttpClientConfig: (HttpClientConfig<*>) -> Unit by lazy {
|
private val clientConfig: (HttpClientConfig<*>) -> Unit by lazy {
|
||||||
val jsonConfig: JsonFeature.Config.() -> Unit = { this.serializer = this@ApiClient.serializer }
|
{
|
||||||
{ it.install(JsonFeature, jsonConfig) }
|
// Hold a reference to the serializer to avoid freezing the entire ApiClient instance
|
||||||
|
// when the JsonFeature is configured.
|
||||||
|
val serializerReference = serializer
|
||||||
|
it.install(JsonFeature) { serializer = serializerReference }
|
||||||
|
httpClientConfig?.invoke(it)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val client: HttpClient by lazy {
|
private val client: HttpClient by lazy {
|
||||||
val clientConfig: (HttpClientConfig<*>) -> Unit = httpClientConfig ?: defaultHttpClientConfig
|
|
||||||
httpClientEngine?.let { HttpClient(it, clientConfig) } ?: HttpClient(clientConfig)
|
httpClientEngine?.let { HttpClient(it, clientConfig) } ?: HttpClient(clientConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
{{#hasAuthMethods}}
|
{{#hasAuthMethods}}
|
||||||
private val authentications: kotlin.collections.Map<String, Authentication> by lazy {
|
private val authentications: kotlin.collections.Map<String, Authentication> by lazy {
|
||||||
mapOf({{#authMethods}}{{#isBasic}}{{#isBasicBasic}}
|
mapOf({{#authMethods}}{{#isBasic}}{{#isBasicBasic}}
|
||||||
|
@ -34,15 +34,20 @@ open class ApiClient(
|
|||||||
KotlinxSerializer(json).ignoreOutgoingContent()
|
KotlinxSerializer(json).ignoreOutgoingContent()
|
||||||
}
|
}
|
||||||
|
|
||||||
private val defaultHttpClientConfig: (HttpClientConfig<*>) -> Unit by lazy {
|
private val clientConfig: (HttpClientConfig<*>) -> Unit by lazy {
|
||||||
val jsonConfig: JsonFeature.Config.() -> Unit = { this.serializer = this@ApiClient.serializer }
|
{
|
||||||
{ it.install(JsonFeature, jsonConfig) }
|
// Hold a reference to the serializer to avoid freezing the entire ApiClient instance
|
||||||
|
// when the JsonFeature is configured.
|
||||||
|
val serializerReference = serializer
|
||||||
|
it.install(JsonFeature) { serializer = serializerReference }
|
||||||
|
httpClientConfig?.invoke(it)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val client: HttpClient by lazy {
|
private val client: HttpClient by lazy {
|
||||||
val clientConfig: (HttpClientConfig<*>) -> Unit = httpClientConfig ?: defaultHttpClientConfig
|
|
||||||
httpClientEngine?.let { HttpClient(it, clientConfig) } ?: HttpClient(clientConfig)
|
httpClientEngine?.let { HttpClient(it, clientConfig) } ?: HttpClient(clientConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
private val authentications: kotlin.collections.Map<String, Authentication> by lazy {
|
private val authentications: kotlin.collections.Map<String, Authentication> by lazy {
|
||||||
mapOf(
|
mapOf(
|
||||||
"api_key" to ApiKeyAuth("header", "api_key"),
|
"api_key" to ApiKeyAuth("header", "api_key"),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user