43 lines
1.1 KiB
Kotlin
43 lines
1.1 KiB
Kotlin
import dev.adamko.kafkatorio.gradle.asProvider
|
|
import dev.adamko.kafkatorio.gradle.typescriptAttributes
|
|
|
|
plugins {
|
|
id("dev.adamko.kafkatorio.lang.kotlin-jvm")
|
|
kotlin("plugin.serialization")
|
|
}
|
|
|
|
dependencies {
|
|
implementation(platform(libs.kotlinx.serialization.bom))
|
|
implementation(libs.kotlinx.serialization.core)
|
|
implementation(libs.kotlinx.serialization.json)
|
|
|
|
implementation("com.github.ntrrgc:ts-generator:1.1.2")
|
|
implementation("org.jetbrains.kotlin:kotlin-reflect")
|
|
}
|
|
|
|
val generateTypescript by tasks.registering(JavaExec::class) {
|
|
group = project.name
|
|
|
|
val generatedFileName = "$temporaryDir/data-model.ts"
|
|
inputs.property("generatedFileName", generatedFileName)
|
|
outputs.file(generatedFileName)
|
|
|
|
classpath(sourceSets.main.map { it.runtimeClasspath })
|
|
mainClass.set("dev.adamko.factorioevents.model.Kt2tsKt")
|
|
args(generatedFileName)
|
|
|
|
doFirst {
|
|
delete(temporaryDir)
|
|
mkdir(temporaryDir)
|
|
}
|
|
}
|
|
|
|
val typescriptModelGenerated by configurations.registering {
|
|
asProvider()
|
|
typescriptAttributes(objects)
|
|
outgoing.artifact(
|
|
generateTypescript.map {
|
|
it.outputs.files.singleFile
|
|
}
|
|
)
|
|
}
|