Kafkatorio/modules/events-schema/build.gradle.kts
2021-12-01 16:57:46 +01:00

43 lines
1.1 KiB
Kotlin

import dev.adamko.factoriowebmap.configurations.asProvider
import dev.adamko.factoriowebmap.configurations.typescriptAttributes
plugins {
id("dev.adamko.factoriowebmap.archetype.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
}
)
}