alsoInvalidateSync, alsoInvalidateSyncLogging, alsoDoInvalidate -> alsoInvalidateAsync

This commit is contained in:
2025-03-14 15:01:22 +06:00
parent 6fb20fb973
commit 178518db5e
6 changed files with 61 additions and 7 deletions

View File

@@ -15,7 +15,7 @@ suspend fun <T : InvalidatableRepo> T.alsoInvalidate() = also {
invalidate()
}
fun <T : InvalidatableRepo> T.alsoDoInvalidate(scope: CoroutineScope) = also {
fun <T : InvalidatableRepo> T.alsoInvalidateAsync(scope: CoroutineScope) = also {
scope.launchLoggingDropExceptions {
invalidate()
}

View File

@@ -0,0 +1,54 @@
package dev.inmo.micro_utils.repos.cache
import dev.inmo.kslog.common.KSLog
import dev.inmo.micro_utils.coroutines.doSynchronously
import dev.inmo.micro_utils.coroutines.runCatchingLogging
import kotlinx.coroutines.CoroutineScope
fun <T : InvalidatableRepo> T.alsoInvalidateSync(
scope: CoroutineScope,
onFailure: suspend (Throwable) -> Unit = {},
) = also {
scope.doSynchronously {
runCatching {
invalidate()
}.onFailure {
onFailure(it)
}
}
}
fun <T : InvalidatableRepo> T.alsoInvalidateSync(
onFailure: suspend (Throwable) -> Unit = {},
) = also {
doSynchronously {
runCatching {
invalidate()
}.onFailure {
onFailure(it)
}
}
}
fun <T : InvalidatableRepo> T.alsoInvalidateSyncLogging(
scope: CoroutineScope,
errorMessageBuilder: CoroutineScope.(Throwable) -> Any = { "Something web wrong" },
logger: KSLog = KSLog,
) = also {
scope.doSynchronously {
runCatchingLogging(errorMessageBuilder, logger) {
invalidate()
}
}
}
fun <T : InvalidatableRepo> T.alsoInvalidateSyncLogging(
errorMessageBuilder: CoroutineScope.(Throwable) -> Any = { "Something web wrong" },
logger: KSLog = KSLog,
) = also {
doSynchronously {
runCatchingLogging(errorMessageBuilder, logger) {
invalidate()
}
}
}