mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2025-09-09 10:15:33 +00:00
alsoInvalidateSync, alsoInvalidateSyncLogging, alsoDoInvalidate -> alsoInvalidateAsync
This commit is contained in:
@@ -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()
|
||||
}
|
||||
|
54
repos/cache/src/jvmMain/kotlin/InvalidateSynchronously.kt
vendored
Normal file
54
repos/cache/src/jvmMain/kotlin/InvalidateSynchronously.kt
vendored
Normal 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()
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user