Skip to content

Commit 6a8040b

Browse files
authored
Merge pull request #209 from icerockdev/develop
Release 0.21.1
2 parents 5fc13ff + 866c77a commit 6a8040b

File tree

4 files changed

+45
-30
lines changed

4 files changed

+45
-30
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ buildscript {
3636
}
3737
3838
dependencies {
39-
classpath "dev.icerock.moko:network-generator:0.21.0"
39+
classpath "dev.icerock.moko:network-generator:0.21.1"
4040
}
4141
}
4242
@@ -53,10 +53,10 @@ project build.gradle
5353
apply plugin: "dev.icerock.mobile.multiplatform-network-generator"
5454
5555
dependencies {
56-
commonMainApi("dev.icerock.moko:network:0.21.0")
57-
commonMainApi("dev.icerock.moko:network-engine:0.21.0") // configured HttpClientEngine
58-
commonMainApi("dev.icerock.moko:network-bignum:0.21.0") // kbignum serializer
59-
commonMainApi("dev.icerock.moko:network-errors:0.21.0") // moko-errors integration
56+
commonMainApi("dev.icerock.moko:network:0.21.1")
57+
commonMainApi("dev.icerock.moko:network-engine:0.21.1") // configured HttpClientEngine
58+
commonMainApi("dev.icerock.moko:network-bignum:0.21.1") // kbignum serializer
59+
commonMainApi("dev.icerock.moko:network-errors:0.21.1") // moko-errors integration
6060
}
6161
```
6262

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ mokoResourcesVersion = "0.21.2"
2020
mokoMvvmVersion = "0.16.0"
2121
mokoErrorsVersion = "0.7.0"
2222
mokoTestVersion = "0.6.1"
23-
mokoNetworkVersion = "0.21.0"
23+
mokoNetworkVersion = "0.21.1"
2424

2525
# tests
2626
espressoCoreVersion = "3.5.1"

network-generator/src/main/kotlin/dev/icerock/moko/network/MultiPlatformNetworkGeneratorPlugin.kt

Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,42 +7,39 @@ package dev.icerock.moko.network
77
import dev.icerock.moko.network.tasks.GenerateTask
88
import org.gradle.api.Plugin
99
import org.gradle.api.Project
10+
import org.gradle.api.Task
11+
import org.gradle.api.tasks.TaskProvider
12+
import org.gradle.kotlin.dsl.getByType
1013
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
14+
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
1115
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
1216
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinNativeCompile
1317

14-
@Suppress("ForbiddenComment")
1518
class MultiPlatformNetworkGeneratorPlugin : Plugin<Project> {
1619

17-
override fun apply(target: Project) {
18-
val mokoNetworkExtension = target.extensions.create("mokoNetwork", SpecConfig::class.java)
20+
override fun apply(project: Project) {
21+
val mokoNetworkExtension = project.extensions.create("mokoNetwork", SpecConfig::class.java)
1922

20-
target.afterEvaluate { it.setupProject(mokoNetworkExtension) }
23+
project.afterEvaluate {
24+
it.setupProject(mokoNetworkExtension)
25+
}
2126
}
2227

23-
private fun Project.setupProject(extension: SpecConfig) {
24-
val multiplatformExtension =
25-
extensions.findByType(KotlinMultiplatformExtension::class.java)
28+
private fun Project.setupProject(mokoNetworkExtension: SpecConfig) {
29+
val multiplatformExtension: KotlinMultiplatformExtension = project.extensions.getByType()
2630

27-
if (extension.specs.isEmpty()) return
31+
if (mokoNetworkExtension.specs.isEmpty()) return
2832

2933
val openApiGenerateTask = tasks.create("openApiGenerate") {
3034
it.group = "moko-network"
3135
}
3236

33-
extension.specs.forEach { spec ->
34-
val generatedDir = "$buildDir/generated/moko-network/${spec.name}"
35-
val generatedSourcesDir = "$generatedDir/src/main/kotlin"
36-
val sourceSet = multiplatformExtension?.sourceSets?.getByName(spec.sourceSet)
37-
38-
sourceSet?.kotlin?.srcDir(generatedSourcesDir)
39-
40-
val generateTask: GenerateTask = tasks.create(
41-
"${spec.name}OpenApiGenerate",
42-
GenerateTask::class.java
43-
) { it.configure(spec, generatedDir) }
44-
45-
openApiGenerateTask.dependsOn(generateTask)
37+
mokoNetworkExtension.specs.forEach { spec ->
38+
registerSpecGenerationTask(
39+
spec = spec,
40+
openApiGenerateTask = openApiGenerateTask,
41+
multiplatformExtension = multiplatformExtension
42+
)
4643
}
4744

4845
tasks.matching { it.name == "preBuild" }
@@ -53,3 +50,22 @@ class MultiPlatformNetworkGeneratorPlugin : Plugin<Project> {
5350
.all { it.dependsOn(openApiGenerateTask) }
5451
}
5552
}
53+
54+
private fun Project.registerSpecGenerationTask(
55+
spec: SpecInfo,
56+
openApiGenerateTask: Task,
57+
multiplatformExtension: KotlinMultiplatformExtension,
58+
) {
59+
val generatedDir = "$buildDir/generated/moko-network/${spec.name}"
60+
val generatedSourcesDir = "$generatedDir/src/main/kotlin"
61+
val sourceSet: KotlinSourceSet? = multiplatformExtension.sourceSets.getByName(spec.sourceSet)
62+
63+
sourceSet?.kotlin?.srcDir(generatedSourcesDir)
64+
65+
val generateTask: TaskProvider<GenerateTask> = tasks.register(
66+
"${spec.name}OpenApiGenerate",
67+
GenerateTask::class.java
68+
) { it.configure(spec, generatedDir) }
69+
70+
openApiGenerateTask.dependsOn(generateTask)
71+
}

network-generator/src/main/kotlin/dev/icerock/moko/network/tasks/GenerateTask.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ package dev.icerock.moko.network.tasks
77
import dev.icerock.moko.network.KtorCodegen
88
import dev.icerock.moko.network.SpecInfo
99
import org.openapitools.generator.gradle.plugin.tasks.GenerateTask
10+
import java.io.File
1011

1112
open class GenerateTask : GenerateTask() {
1213
init {
@@ -33,9 +34,7 @@ open class GenerateTask : GenerateTask() {
3334

3435
doFirst {
3536
// clean directory before generate new code
36-
val cleanupDir = outputDir.get()
37-
val dir = project.file(cleanupDir)
38-
dir.deleteRecursively()
37+
File(outputDir.get()).deleteRecursively()
3938
}
4039
}
4140
}

0 commit comments

Comments
 (0)