mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2025-09-17 22:39:25 +00:00
Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
039aed2747 | |||
173991e3cb | |||
8b3f8cab01 | |||
2a20d24589 | |||
53c2d552ec | |||
af11c1a83d | |||
a65cf1481c | |||
0318716236 | |||
88eb4b3342 | |||
4810d1ef6a | |||
f2a9514d89 | |||
925ba6ac24 | |||
|
ef407268a2 | ||
cd6c4bbe38 |
19
CHANGELOG.md
19
CHANGELOG.md
@@ -1,5 +1,24 @@
|
||||
# Changelog
|
||||
|
||||
## 0.20.6
|
||||
|
||||
* `Repos`:
|
||||
* `Exposed`
|
||||
* Fixes in exposed key-values repos
|
||||
|
||||
## 0.20.5
|
||||
|
||||
* `Coroutines`:
|
||||
* Fixes in `SmartRWLocker`
|
||||
|
||||
## 0.20.4
|
||||
|
||||
* `Versions`:
|
||||
* `Kotlin`: `1.9.0` -> `1.9.10`
|
||||
* `KSLog`: `1.2.0` -> `1.2.1`
|
||||
* `Compose`: `1.5.0` -> `1.5.1`
|
||||
* `UUID`: `0.8.0` -> `0.8.1`
|
||||
|
||||
## 0.20.3
|
||||
|
||||
* `Versions`:
|
||||
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.android.alerts.common"/>
|
||||
<manifest/>
|
||||
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.android.alerts.recyclerview"/>
|
||||
<manifest/>
|
||||
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.android.pickers"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.android.recyclerview"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.android.smalltextfield"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.common.compose"/>
|
||||
<manifest/>
|
||||
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.common"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.coroutines.compose"/>
|
||||
<manifest/>
|
||||
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.coroutines"/>
|
||||
<manifest/>
|
@@ -37,8 +37,8 @@ class SmartRWLocker(private val readPermits: Int = Int.MAX_VALUE, writeIsLocked:
|
||||
* Locking [writeMutex] and wait while all [readSemaphore] permits will be freed
|
||||
*/
|
||||
suspend fun lockWrite() {
|
||||
_readSemaphore.acquire(readPermits)
|
||||
_writeMutex.lock()
|
||||
_readSemaphore.acquire(readPermits)
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.crypto"/>
|
||||
<manifest/>
|
@@ -9,6 +9,7 @@ android {
|
||||
targetSdkVersion libs.versions.android.props.compileSdk.get().toInteger()
|
||||
versionCode "${android_code_version}".toInteger()
|
||||
versionName "$version"
|
||||
namespace "${project.group}.${project.name}"
|
||||
}
|
||||
buildTypes {
|
||||
release {
|
||||
|
@@ -106,7 +106,7 @@ tasks.dokkaHtml {
|
||||
skipDeprecated.set(true)
|
||||
|
||||
sourceLink {
|
||||
localDirectory.set(file("./"))
|
||||
localDirectory.set(file("../"))
|
||||
remoteUrl.set(new URL("https://github.com/InsanusMokrassar/MicroUtils/blob/master/"))
|
||||
remoteLineSuffix.set("#L")
|
||||
}
|
||||
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.dokka"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.fsm.common"/>
|
||||
<manifest/>
|
||||
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.fsm.repos.common"/>
|
||||
<manifest/>
|
||||
|
@@ -15,5 +15,5 @@ crypto_js_version=4.1.1
|
||||
# Project data
|
||||
|
||||
group=dev.inmo
|
||||
version=0.20.3
|
||||
android_code_version=209
|
||||
version=0.20.6
|
||||
android_code_version=212
|
||||
|
@@ -1,17 +1,17 @@
|
||||
[versions]
|
||||
|
||||
kt = "1.9.0"
|
||||
kt = "1.9.10"
|
||||
kt-serialization = "1.6.0"
|
||||
kt-coroutines = "1.7.3"
|
||||
|
||||
kslog = "1.2.0"
|
||||
kslog = "1.2.1"
|
||||
|
||||
jb-compose = "1.5.0"
|
||||
jb-compose = "1.5.1"
|
||||
jb-exposed = "0.43.0"
|
||||
jb-dokka = "1.8.20"
|
||||
jb-dokka = "1.9.0"
|
||||
|
||||
korlibs = "4.0.10"
|
||||
uuid = "0.8.0"
|
||||
uuid = "0.8.1"
|
||||
|
||||
ktor = "2.3.4"
|
||||
|
||||
@@ -21,7 +21,7 @@ koin = "3.4.3"
|
||||
|
||||
okio = "3.5.0"
|
||||
|
||||
ksp = "1.9.0-1.0.13"
|
||||
ksp = "1.9.10-1.0.13"
|
||||
kotlin-poet = "1.14.2"
|
||||
|
||||
versions = "0.47.0"
|
||||
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.koin.generator.test"/>
|
||||
<manifest/>
|
||||
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.koin"/>
|
||||
<manifest/>
|
||||
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.ktor.client"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.ktor.common"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.language_codes"/>
|
||||
<manifest/>
|
||||
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.matrix"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.mime_types"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.pagination.common"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.pagination.ktor.common"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.repos.cache"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.repos.common"/>
|
||||
<manifest/>
|
@@ -1,12 +1,10 @@
|
||||
package dev.inmo.micro_utils.repos.exposed.onetomany
|
||||
|
||||
import dev.inmo.micro_utils.pagination.*
|
||||
import dev.inmo.micro_utils.repos.ReadKeyValueRepo
|
||||
import dev.inmo.micro_utils.repos.ReadKeyValuesRepo
|
||||
import dev.inmo.micro_utils.repos.exposed.*
|
||||
import dev.inmo.micro_utils.repos.exposed.utils.selectPaginated
|
||||
import org.jetbrains.exposed.sql.*
|
||||
import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
|
||||
import org.jetbrains.exposed.sql.transactions.transaction
|
||||
|
||||
abstract class AbstractExposedReadKeyValuesRepo<Key, Value>(
|
||||
@@ -73,4 +71,26 @@ abstract class AbstractExposedReadKeyValuesRepo<Key, Value>(
|
||||
override suspend fun contains(k: Key, v: Value): Boolean = transaction(database) {
|
||||
select { selectById(k).and(selectByValue(v)) }.limit(1).any()
|
||||
}
|
||||
|
||||
override suspend fun getAll(reverseLists: Boolean): Map<Key, List<Value>> = transaction(database) {
|
||||
val query = if (reverseLists) {
|
||||
selectAll().orderBy(keyColumn, SortOrder.DESC)
|
||||
} else {
|
||||
selectAll()
|
||||
}
|
||||
query.asSequence().map { it.asKey to it.asObject }.groupBy { it.first }.mapValues {
|
||||
it.value.map { it.second }
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun getAll(k: Key, reverseLists: Boolean): List<Value> = transaction(database) {
|
||||
val query = if (reverseLists) {
|
||||
select { selectById(k) }.orderBy(keyColumn, SortOrder.DESC)
|
||||
} else {
|
||||
select { selectById(k) }
|
||||
}
|
||||
query.map {
|
||||
it.asObject
|
||||
}
|
||||
}
|
||||
}
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.repos.generator.test"/>
|
||||
<manifest/>
|
||||
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.repos.inmemory"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.repos.ktor.client"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.repos.ktor.common"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.safe_wrapper"/>
|
||||
<manifest/>
|
||||
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.selector"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.serialization.base64"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.serialization.encapsulator"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.serialization.mapper"/>
|
||||
<manifest/>
|
||||
|
@@ -1 +1 @@
|
||||
<manifest package="dev.inmo.micro_utils.serialization.typed_serializer"/>
|
||||
<manifest/>
|
@@ -1 +1 @@
|
||||
<manifest package="group_name.module_name.client"/>
|
||||
<manifest/>
|
||||
|
@@ -1 +1 @@
|
||||
<manifest package="group_name.module_name.common"/>
|
||||
<manifest/>
|
||||
|
Reference in New Issue
Block a user