mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2024-12-23 09:07:14 +00:00
commit
8b4b4a5eca
10
CHANGELOG.md
10
CHANGELOG.md
@ -1,5 +1,15 @@
|
||||
# Changelog
|
||||
|
||||
## 0.16.9
|
||||
|
||||
* `Versions`:
|
||||
* `Koin`: `3.2.2` -> `3.3.2`
|
||||
* `AppCompat`: `1.5.1` -> `1.6.0`
|
||||
* `Ktor`:
|
||||
* `Client`
|
||||
* `HttpResponse.bodyOrNull` now retrieve callback to check if body should be received or null
|
||||
* New extension `HttpResponse.bodyOrNullOnNoContent`
|
||||
|
||||
## 0.16.8
|
||||
|
||||
* `Versions`:
|
||||
|
@ -14,5 +14,5 @@ crypto_js_version=4.1.1
|
||||
# Project data
|
||||
|
||||
group=dev.inmo
|
||||
version=0.16.8
|
||||
android_code_version=176
|
||||
version=0.16.9
|
||||
android_code_version=177
|
||||
|
@ -17,21 +17,21 @@ ktor = "2.2.3"
|
||||
|
||||
gh-release = "2.4.1"
|
||||
|
||||
koin = "3.2.2"
|
||||
koin = "3.3.2"
|
||||
|
||||
android-gradle = "7.3.0"
|
||||
dexcount = "3.1.0"
|
||||
|
||||
android-coreKtx = "1.9.0"
|
||||
android-recyclerView = "1.2.1"
|
||||
android-appCompat = "1.5.1"
|
||||
android-appCompat = "1.6.0"
|
||||
android-fragment = "1.5.5"
|
||||
android-espresso = "3.4.0"
|
||||
android-test = "1.1.3"
|
||||
|
||||
android-props-minSdk = "21"
|
||||
android-props-compileSdk = "33"
|
||||
android-props-buildTools = "33.0.0"
|
||||
android-props-buildTools = "33.0.1"
|
||||
|
||||
[libraries]
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package dev.inmo.micro_utils.koin
|
||||
|
||||
import org.koin.core.definition.Definition
|
||||
import org.koin.core.definition.KoinDefinition
|
||||
import org.koin.core.instance.InstanceFactory
|
||||
import org.koin.core.module.Module
|
||||
import org.koin.core.qualifier.Qualifier
|
||||
@ -13,7 +14,7 @@ inline fun <reified T : Any> Module.factoryWithBinds(
|
||||
qualifier: Qualifier? = null,
|
||||
bindFilter: (KClass<*>) -> Boolean = { true },
|
||||
noinline definition: Definition<T>
|
||||
): Pair<Module, InstanceFactory<*>> {
|
||||
): KoinDefinition<*> {
|
||||
return factory(qualifier, definition) binds (T::class.allSuperclasses.filter(bindFilter).toTypedArray())
|
||||
}
|
||||
|
||||
@ -21,7 +22,7 @@ inline fun <reified T : Any> Module.factoryWithBinds(
|
||||
qualifier: String,
|
||||
bindFilter: (KClass<*>) -> Boolean = { true },
|
||||
noinline definition: Definition<T>
|
||||
): Pair<Module, InstanceFactory<*>> {
|
||||
): KoinDefinition<*> {
|
||||
return factory(qualifier, definition) binds (T::class.allSuperclasses.filter(bindFilter).toTypedArray())
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package dev.inmo.micro_utils.koin
|
||||
|
||||
import org.koin.core.definition.Definition
|
||||
import org.koin.core.definition.KoinDefinition
|
||||
import org.koin.core.instance.InstanceFactory
|
||||
import org.koin.core.module.Module
|
||||
import kotlin.reflect.KClass
|
||||
@ -8,6 +9,6 @@ import kotlin.reflect.KClass
|
||||
inline fun <reified T : Any> Module.factoryWithRandomQualifierAndBinds(
|
||||
bindFilter: (KClass<*>) -> Boolean = { true },
|
||||
noinline definition: Definition<T>
|
||||
): Pair<Module, InstanceFactory<*>> {
|
||||
): KoinDefinition<*> {
|
||||
return factoryWithBinds(RandomQualifier(), bindFilter, definition)
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package dev.inmo.micro_utils.koin
|
||||
|
||||
import org.koin.core.definition.Definition
|
||||
import org.koin.core.definition.KoinDefinition
|
||||
import org.koin.core.instance.InstanceFactory
|
||||
import org.koin.core.module.Module
|
||||
import org.koin.core.qualifier.Qualifier
|
||||
@ -14,7 +15,7 @@ inline fun <reified T : Any> Module.singleWithBinds(
|
||||
createdAtStart: Boolean = false,
|
||||
bindFilter: (KClass<*>) -> Boolean = { true },
|
||||
noinline definition: Definition<T>
|
||||
): Pair<Module, InstanceFactory<*>> {
|
||||
): KoinDefinition<*> {
|
||||
return single(qualifier, createdAtStart, definition) binds (T::class.allSuperclasses.filter(bindFilter).toTypedArray())
|
||||
}
|
||||
|
||||
@ -24,7 +25,7 @@ inline fun <reified T : Any> Module.singleWithBinds(
|
||||
createdAtStart: Boolean = false,
|
||||
bindFilter: (KClass<*>) -> Boolean = { true },
|
||||
noinline definition: Definition<T>
|
||||
): Pair<Module, InstanceFactory<*>> {
|
||||
): KoinDefinition<*> {
|
||||
return single(qualifier, createdAtStart, definition) binds (T::class.allSuperclasses.filter(bindFilter).toTypedArray())
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package dev.inmo.micro_utils.koin
|
||||
|
||||
import org.koin.core.definition.Definition
|
||||
import org.koin.core.definition.KoinDefinition
|
||||
import org.koin.core.instance.InstanceFactory
|
||||
import org.koin.core.module.Module
|
||||
import kotlin.reflect.KClass
|
||||
@ -9,6 +10,6 @@ inline fun <reified T : Any> Module.singleWithRandomQualifierAndBinds(
|
||||
createdAtStart: Boolean = false,
|
||||
bindFilter: (KClass<*>) -> Boolean = { true },
|
||||
noinline definition: Definition<T>
|
||||
): Pair<Module, InstanceFactory<*>> {
|
||||
): KoinDefinition<*> {
|
||||
return singleWithBinds(RandomQualifier(), createdAtStart, bindFilter, definition)
|
||||
}
|
||||
|
@ -4,6 +4,10 @@ import io.ktor.client.call.body
|
||||
import io.ktor.client.statement.HttpResponse
|
||||
import io.ktor.http.HttpStatusCode
|
||||
|
||||
suspend inline fun <reified T : Any> HttpResponse.bodyOrNull() = takeIf {
|
||||
status == HttpStatusCode.OK
|
||||
} ?.body<T>()
|
||||
suspend inline fun <reified T : Any> HttpResponse.bodyOrNull(
|
||||
statusFilter: (HttpResponse) -> Boolean = { it.status == HttpStatusCode.OK }
|
||||
) = takeIf(statusFilter) ?.body<T>()
|
||||
|
||||
suspend inline fun <reified T : Any> HttpResponse.bodyOrNullOnNoContent() = bodyOrNull<T> {
|
||||
it.status != HttpStatusCode.NoContent
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user