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