override fun sealedUnionBody()

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()
    }