mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2026-04-07 10:02:51 +00:00
Compare commits
4 Commits
74563bbac9
...
f7a9f2e13d
| Author | SHA1 | Date | |
|---|---|---|---|
| f7a9f2e13d | |||
| af286d3d53 | |||
| 9a20e8155e | |||
| b81af7e1c8 |
@@ -2,6 +2,15 @@
|
||||
|
||||
## 0.24.6
|
||||
|
||||
* `Versions`:
|
||||
* `KSLog`: `1.4.0` -> `1.4.1`
|
||||
* `Exposed`: `0.58.0` -> `0.59.0`
|
||||
* `SQLite`: `3.48.0.0` -> `3.49.0.0`
|
||||
* `AndroidFragment`: `1.8.5` -> `1.8.6`
|
||||
* `KSP`:
|
||||
* `Variations`:
|
||||
* Module has been created
|
||||
|
||||
## 0.24.5
|
||||
|
||||
* `Versions`:
|
||||
|
||||
@@ -4,18 +4,18 @@ kt = "2.1.10"
|
||||
kt-serialization = "1.8.0"
|
||||
kt-coroutines = "1.10.1"
|
||||
|
||||
kslog = "1.4.0"
|
||||
kslog = "1.4.1"
|
||||
|
||||
jb-compose = "1.7.3"
|
||||
jb-exposed = "0.58.0"
|
||||
jb-exposed = "0.59.0"
|
||||
jb-dokka = "2.0.0"
|
||||
|
||||
sqlite = "3.48.0.0"
|
||||
sqlite = "3.49.0.0"
|
||||
|
||||
korlibs = "5.4.0"
|
||||
uuid = "0.8.4"
|
||||
|
||||
ktor = "3.0.3"
|
||||
ktor = "3.1.0"
|
||||
|
||||
gh-release = "2.5.2"
|
||||
|
||||
@@ -28,16 +28,15 @@ kotlin-poet = "1.18.1"
|
||||
|
||||
versions = "0.51.0"
|
||||
|
||||
android-gradle = "8.2.2"
|
||||
android-gradle = "8.7.+"
|
||||
dexcount = "4.0.0"
|
||||
|
||||
android-coreKtx = "1.15.0"
|
||||
android-recyclerView = "1.4.0"
|
||||
android-appCompat = "1.7.0"
|
||||
android-fragment = "1.8.5"
|
||||
android-fragment = "1.8.6"
|
||||
android-espresso = "3.6.1"
|
||||
android-test = "1.2.1"
|
||||
android-compose-material3 = "1.3.0"
|
||||
|
||||
android-props-minSdk = "21"
|
||||
android-props-compileSdk = "35"
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
if (ext.getProperties()["do_publish"] == false) {
|
||||
return
|
||||
}
|
||||
|
||||
apply plugin: 'maven-publish'
|
||||
|
||||
task javadocsJar(type: Jar) {
|
||||
@@ -19,29 +23,29 @@ publishing {
|
||||
}
|
||||
|
||||
developers {
|
||||
|
||||
|
||||
developer {
|
||||
id = "InsanusMokrassar"
|
||||
name = "Aleksei Ovsiannikov"
|
||||
email = "ovsyannikov.alexey95@gmail.com"
|
||||
}
|
||||
|
||||
|
||||
|
||||
developer {
|
||||
id = "000Sanya"
|
||||
name = "Syrov Aleksandr"
|
||||
email = "000sanya.000sanya@gmail.com"
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
licenses {
|
||||
|
||||
|
||||
license {
|
||||
name = "Apache Software License 2.0"
|
||||
url = "https://github.com/InsanusMokrassar/MicroUtils/blob/master/LICENSE"
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
@@ -49,51 +53,51 @@ publishing {
|
||||
maven {
|
||||
name = "GithubPackages"
|
||||
url = uri("https://maven.pkg.github.com/InsanusMokrassar/MicroUtils")
|
||||
|
||||
|
||||
credentials {
|
||||
username = project.hasProperty('GITHUBPACKAGES_USER') ? project.property('GITHUBPACKAGES_USER') : System.getenv('GITHUBPACKAGES_USER')
|
||||
password = project.hasProperty('GITHUBPACKAGES_PASSWORD') ? project.property('GITHUBPACKAGES_PASSWORD') : System.getenv('GITHUBPACKAGES_PASSWORD')
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
if ((project.hasProperty('INMONEXUS_USER') || System.getenv('INMONEXUS_USER') != null) && (project.hasProperty('INMONEXUS_PASSWORD') || System.getenv('INMONEXUS_PASSWORD') != null)) {
|
||||
maven {
|
||||
name = "InmoNexus"
|
||||
url = uri("https://nexus.inmo.dev/repository/maven-releases/")
|
||||
|
||||
|
||||
credentials {
|
||||
username = project.hasProperty('INMONEXUS_USER') ? project.property('INMONEXUS_USER') : System.getenv('INMONEXUS_USER')
|
||||
password = project.hasProperty('INMONEXUS_PASSWORD') ? project.property('INMONEXUS_PASSWORD') : System.getenv('INMONEXUS_PASSWORD')
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) {
|
||||
maven {
|
||||
name = "sonatype"
|
||||
url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
|
||||
|
||||
|
||||
credentials {
|
||||
username = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : System.getenv('SONATYPE_USER')
|
||||
password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD')
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (project.hasProperty("signing.gnupg.keyName")) {
|
||||
apply plugin: 'signing'
|
||||
|
||||
|
||||
signing {
|
||||
useGpgCmd()
|
||||
|
||||
|
||||
sign publishing.publications
|
||||
}
|
||||
|
||||
|
||||
task signAll {
|
||||
tasks.withType(Sign).forEach {
|
||||
dependsOn(it)
|
||||
|
||||
@@ -5,6 +5,8 @@ plugins {
|
||||
id "com.google.devtools.ksp"
|
||||
}
|
||||
|
||||
ext.do_publish = false
|
||||
|
||||
apply from: "$mppJvmJsAndroidLinuxMingwLinuxArm64Project"
|
||||
|
||||
|
||||
|
||||
@@ -12,15 +12,22 @@ fun KSDeclaration.writeFile(
|
||||
suffix: String = "",
|
||||
relatedPath: String = "",
|
||||
force: Boolean = false,
|
||||
forceUppercase: Boolean = true,
|
||||
fileSpecBuilder: () -> FileSpec
|
||||
) {
|
||||
val containingFile = containingFile!!
|
||||
val simpleName = if (forceUppercase) {
|
||||
val rawSimpleName = simpleName.asString()
|
||||
rawSimpleName.replaceFirst(rawSimpleName.first().toString(), rawSimpleName.first().uppercase())
|
||||
} else {
|
||||
simpleName.asString()
|
||||
}
|
||||
File(
|
||||
File(
|
||||
File(containingFile.filePath).parent,
|
||||
relatedPath
|
||||
),
|
||||
"$prefix${simpleName.asString()}$suffix.kt"
|
||||
"$prefix${simpleName}$suffix.kt"
|
||||
).takeIf { force || !it.exists() } ?.apply {
|
||||
parentFile.mkdirs()
|
||||
val fileSpec = fileSpecBuilder()
|
||||
|
||||
@@ -5,6 +5,8 @@ plugins {
|
||||
id "com.google.devtools.ksp"
|
||||
}
|
||||
|
||||
ext.do_publish = false
|
||||
|
||||
apply from: "$mppJvmJsAndroidLinuxMingwLinuxArm64Project"
|
||||
|
||||
|
||||
|
||||
@@ -77,6 +77,11 @@ class Processor(
|
||||
if (it.isVararg) {
|
||||
addModifiers(KModifier.VARARG)
|
||||
}
|
||||
it.annotations.forEach {
|
||||
if (it.shortName.asString() == GenerationVariant::class.simpleName) return@forEach
|
||||
|
||||
addAnnotation(it.toAnnotationSpec(omitDefaultValues = false))
|
||||
}
|
||||
}
|
||||
.build() to it.hasDefault
|
||||
}
|
||||
@@ -92,11 +97,16 @@ class Processor(
|
||||
val funSpec = FunSpec.builder(ksFunctionDeclaration.simpleName.asString()).apply {
|
||||
modifiers.addAll(ksFunctionDeclaration.modifiers.mapNotNull { it.toKModifier() })
|
||||
ksFunctionDeclaration.annotations.forEach {
|
||||
if (it.shortName.asString() == GenerateVariations::class.simpleName) return@forEach
|
||||
|
||||
addAnnotation(it.toAnnotationSpec(omitDefaultValues = false))
|
||||
}
|
||||
ksFunctionDeclaration.extensionReceiver ?.let {
|
||||
receiver(it.toTypeName())
|
||||
}
|
||||
ksFunctionDeclaration.returnType ?.let {
|
||||
returns(it.toTypeName())
|
||||
}
|
||||
}
|
||||
baseFunctionParameters.forEach { (parameter, hasDefault) ->
|
||||
if (hasDefault) {
|
||||
@@ -138,6 +148,7 @@ class Processor(
|
||||
accumulatedGeneration.receiverType ?.let {
|
||||
receiver(it)
|
||||
}
|
||||
returns(accumulatedGeneration.returnType)
|
||||
accumulatedGeneration.parameters.forEach {
|
||||
val actualName = if (variation.argName.isEmpty()) it.name else variation.argName
|
||||
parameters.add(
|
||||
@@ -169,8 +180,15 @@ class Processor(
|
||||
defaults[it.name] = defaultValueString
|
||||
}
|
||||
} else {
|
||||
it.toBuilder()
|
||||
it.toBuilder().apply {
|
||||
defaults[it.name] = it.name
|
||||
}
|
||||
})
|
||||
.apply {
|
||||
it.annotations.forEach {
|
||||
addAnnotation(it)
|
||||
}
|
||||
}
|
||||
.build()
|
||||
)
|
||||
}
|
||||
@@ -206,7 +224,7 @@ class Processor(
|
||||
it.writeFile(prefix = prefix, suffix = "GeneratedVariation") {
|
||||
FileSpec.builder(
|
||||
it.packageName.asString(),
|
||||
"${it.simpleName.getShortName()}GeneratedVariation"
|
||||
"${it.simpleName.getShortName().let { it.replaceFirst(it.first().toString(), it.first().uppercase()) }}GeneratedVariation"
|
||||
).apply {
|
||||
addFileComment(
|
||||
"""
|
||||
|
||||
@@ -5,6 +5,8 @@ plugins {
|
||||
id "com.google.devtools.ksp"
|
||||
}
|
||||
|
||||
ext.do_publish = false
|
||||
|
||||
apply from: "$mppJvmJsAndroidLinuxMingwLinuxArm64Project"
|
||||
|
||||
|
||||
|
||||
@@ -47,3 +47,15 @@ public suspend fun SimpleType.sample2(
|
||||
): Unit = sample2(
|
||||
arg1 = arg1, arg2 = with(arg22) {toInt()}, arg3 = arg3
|
||||
)
|
||||
|
||||
public suspend fun SimpleType.sample2(arg12: Int, arg22: String): Unit = sample2(
|
||||
arg12 = arg12, arg2 = with(arg22) {toInt()}
|
||||
)
|
||||
|
||||
public suspend fun SimpleType.sample2(
|
||||
arg12: Int,
|
||||
arg22: String,
|
||||
arg3: Boolean,
|
||||
): Unit = sample2(
|
||||
arg12 = arg12, arg2 = with(arg22) {toInt()}, arg3 = arg3
|
||||
)
|
||||
@@ -2,19 +2,19 @@ package dev.inmo.micro_utils.pagination
|
||||
|
||||
import org.jetbrains.exposed.sql.*
|
||||
|
||||
fun Query.paginate(with: Pagination, orderBy: Pair<Expression<*>, SortOrder>? = null) = limit(
|
||||
with.size,
|
||||
with.firstIndex.toLong()
|
||||
).let {
|
||||
if (orderBy != null) {
|
||||
it.orderBy(
|
||||
orderBy.first,
|
||||
orderBy.second
|
||||
)
|
||||
} else {
|
||||
it
|
||||
fun Query.paginate(with: Pagination, orderBy: Pair<Expression<*>, SortOrder>? = null) =
|
||||
limit(with.size)
|
||||
.offset(with.firstIndex.toLong())
|
||||
.let {
|
||||
if (orderBy != null) {
|
||||
it.orderBy(
|
||||
orderBy.first,
|
||||
orderBy.second
|
||||
)
|
||||
} else {
|
||||
it
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun Query.paginate(with: Pagination, orderBy: Expression<*>?, reversed: Boolean = false) = paginate(
|
||||
with,
|
||||
|
||||
@@ -137,7 +137,7 @@ abstract class AbstractExposedWriteCRUDRepo<ObjectType, IdType, InputValueType>(
|
||||
override suspend fun deleteById(ids: List<IdType>) {
|
||||
onBeforeDelete(ids)
|
||||
transaction(db = database) {
|
||||
val deleted = deleteWhere(null, null) { selectByIds(it, ids) }
|
||||
val deleted = deleteWhere { selectByIds(it, ids) }
|
||||
if (deleted == ids.size) {
|
||||
ids
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user