Use more sqldelight coroutines extensions

This commit is contained in:
AntsyLich
2026-06-07 18:01:17 +06:00
parent c612a6ca8d
commit f87c4d55e3
@@ -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()
}
}