[jOOQ/jOOQ#9335] The Unit vs T specialisation isn't necessary in kotlin

This commit is contained in:
Lukas Eder 2022-06-01 09:58:52 +02:00
parent 7ef55aff8c
commit 91438c5122

View File

@ -1,25 +1,15 @@
package org.jooq.kotlin.coroutines
import kotlinx.coroutines.reactive.awaitFirst
import kotlinx.coroutines.reactive.awaitFirstOrNull
import kotlinx.coroutines.reactor.mono
import org.jooq.*
import org.jooq.impl.DSL.*
import java.util.stream.Collector
import org.jooq.Configuration
import org.jooq.DSLContext
// ----------------------------------------------------------------------------
// Extensions to bridge between the reactive-streams and the coroutine world
// ----------------------------------------------------------------------------
suspend fun DSLContext.transactionCoroutine(transactional: suspend (Configuration) -> Unit) {
transactionPublisher { c ->
mono {
transactional.invoke(c)
}
}.awaitFirst()
}
suspend fun <T> DSLContext.transactionCoroutineResult(transactional: suspend (Configuration) -> T): T {
suspend fun <T> DSLContext.transactionCoroutine(transactional: suspend (Configuration) -> T): T {
return transactionPublisher { c ->
mono {
transactional.invoke(c)