From f171b210ad54f6b320227a8855f3c74618d8052b Mon Sep 17 00:00:00 2001 From: Alec Strong Date: Thu, 29 Sep 2022 12:01:12 -0400 Subject: [PATCH] Remove default params to flow extensions (#3489) * Remove default params to flow extensions Would rather be verbose and safe than introduce the default dispatcher unknowingly in situations where it would cause issues * Update FlowExtensions.kt --- .../app/cash/sqldelight/coroutines/FlowExtensions.kt | 11 +++++------ .../app/cash/sqldelight/coroutines/QueryAsFlowTest.kt | 3 ++- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/extensions/coroutines-extensions/src/commonMain/kotlin/app/cash/sqldelight/coroutines/FlowExtensions.kt b/extensions/coroutines-extensions/src/commonMain/kotlin/app/cash/sqldelight/coroutines/FlowExtensions.kt index 4bf36c36eb9..f1c3a0f8986 100644 --- a/extensions/coroutines-extensions/src/commonMain/kotlin/app/cash/sqldelight/coroutines/FlowExtensions.kt +++ b/extensions/coroutines-extensions/src/commonMain/kotlin/app/cash/sqldelight/coroutines/FlowExtensions.kt @@ -22,7 +22,6 @@ 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 kotlinx.coroutines.Dispatchers import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.Channel.Factory.CONFLATED import kotlinx.coroutines.flow.Flow @@ -58,7 +57,7 @@ fun Query.asFlow(): Flow> = flow { @JvmOverloads fun Flow>.mapToOne( - context: CoroutineContext = Dispatchers.Default, + context: CoroutineContext, ): Flow = map { withContext(context) { it.awaitAsOne() @@ -68,7 +67,7 @@ fun Flow>.mapToOne( @JvmOverloads fun Flow>.mapToOneOrDefault( defaultValue: T, - context: CoroutineContext = Dispatchers.Default, + context: CoroutineContext, ): Flow = map { withContext(context) { it.awaitAsOneOrNull() ?: defaultValue @@ -77,7 +76,7 @@ fun Flow>.mapToOneOrDefault( @JvmOverloads fun Flow>.mapToOneOrNull( - context: CoroutineContext = Dispatchers.Default, + context: CoroutineContext, ): Flow = map { withContext(context) { it.awaitAsOneOrNull() @@ -86,7 +85,7 @@ fun Flow>.mapToOneOrNull( @JvmOverloads fun Flow>.mapToOneNotNull( - context: CoroutineContext = Dispatchers.Default, + context: CoroutineContext, ): Flow = mapNotNull { withContext(context) { it.awaitAsOneOrNull() @@ -95,7 +94,7 @@ fun Flow>.mapToOneNotNull( @JvmOverloads fun Flow>.mapToList( - context: CoroutineContext = Dispatchers.Default, + context: CoroutineContext, ): Flow> = map { withContext(context) { it.awaitAsList() diff --git a/extensions/coroutines-extensions/src/commonTest/kotlin/app/cash/sqldelight/coroutines/QueryAsFlowTest.kt b/extensions/coroutines-extensions/src/commonTest/kotlin/app/cash/sqldelight/coroutines/QueryAsFlowTest.kt index 9ad165d34a9..baa9acd26eb 100644 --- a/extensions/coroutines-extensions/src/commonTest/kotlin/app/cash/sqldelight/coroutines/QueryAsFlowTest.kt +++ b/extensions/coroutines-extensions/src/commonTest/kotlin/app/cash/sqldelight/coroutines/QueryAsFlowTest.kt @@ -6,6 +6,7 @@ import app.cash.sqldelight.coroutines.Employee.Companion.USERNAME import app.cash.sqldelight.coroutines.TestDb.Companion.TABLE_EMPLOYEE import app.cash.turbine.test import kotlinx.coroutines.CoroutineStart.UNDISPATCHED +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.yield import kotlin.test.Test @@ -103,7 +104,7 @@ class QueryAsFlowTest : DbTest { @Test fun queryCanBeCollectedMoreThanOnce() = runTest { db -> val flow = db.createQuery(TABLE_EMPLOYEE, "$SELECT_EMPLOYEES WHERE $USERNAME = 'john'", MAPPER) .asFlow() - .mapToOneNotNull() + .mapToOneNotNull(Dispatchers.Default) val employee = Employee("john", "John Johnson")