Use more sqldelight coroutines extensions
This commit is contained in:
@@ -1,36 +1,22 @@
|
|||||||
package tachiyomi.data
|
package tachiyomi.data
|
||||||
|
|
||||||
import app.cash.sqldelight.Query
|
import app.cash.sqldelight.Query
|
||||||
import app.cash.sqldelight.async.coroutines.awaitAsList
|
|
||||||
import app.cash.sqldelight.async.coroutines.awaitAsOne
|
|
||||||
import app.cash.sqldelight.async.coroutines.awaitAsOneOrNull
|
|
||||||
import app.cash.sqldelight.coroutines.asFlow
|
import app.cash.sqldelight.coroutines.asFlow
|
||||||
|
import app.cash.sqldelight.coroutines.mapToList
|
||||||
|
import app.cash.sqldelight.coroutines.mapToOne
|
||||||
|
import app.cash.sqldelight.coroutines.mapToOneOrNull
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.map
|
|
||||||
import kotlinx.coroutines.withContext
|
|
||||||
import kotlin.coroutines.CoroutineContext
|
import kotlin.coroutines.CoroutineContext
|
||||||
import kotlin.coroutines.EmptyCoroutineContext
|
import kotlin.coroutines.EmptyCoroutineContext
|
||||||
|
|
||||||
fun <T : Any> Query<T>.subscribeToList(
|
fun <T : Any> Query<T>.subscribeToList(
|
||||||
context: CoroutineContext = EmptyCoroutineContext,
|
context: CoroutineContext = EmptyCoroutineContext,
|
||||||
): Flow<List<T>> = asFlow().map {
|
): Flow<List<T>> = asFlow().mapToList(context)
|
||||||
withContext(context) {
|
|
||||||
it.awaitAsList()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun <T : Any> Query<T>.subscribeToOne(
|
fun <T : Any> Query<T>.subscribeToOne(
|
||||||
context: CoroutineContext = EmptyCoroutineContext,
|
context: CoroutineContext = EmptyCoroutineContext,
|
||||||
): Flow<T> = asFlow().map {
|
): Flow<T> = asFlow().mapToOne(context)
|
||||||
withContext(context) {
|
|
||||||
it.awaitAsOne()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun <T : Any> Query<T>.subscribeToOneOrNull(
|
fun <T : Any> Query<T>.subscribeToOneOrNull(
|
||||||
context: CoroutineContext = EmptyCoroutineContext,
|
context: CoroutineContext = EmptyCoroutineContext,
|
||||||
): Flow<T?> = asFlow().map {
|
): Flow<T?> = asFlow().mapToOneOrNull(context)
|
||||||
withContext(context) {
|
|
||||||
it.awaitAsOneOrNull()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user