in build-logic/generatorlegacybuild/src/main/kotlin/karakum/common/UnionConverter.kt [175:196]
override fun sealedUnionBody(
name: String,
parentType: String,
values: List<String>,
): String {
val constants = values.map(::unionConstant)
val extensions = constants.joinToString("\n") {
"""
inline val $name.Companion.${it.name}: $parentType.${it.name.replaceFirstChar(Char::uppercase)}
get() = unsafeCast(${it.jsValue})
""".trimIndent()
}
return """
sealed external interface $name : $parentType {
companion object
}
$extensions
""".trimIndent()
}