in kotlin-node/karakum/src/jsMain/kotlin/node/karakum/plugins/ResourceRecordTypePlugin.kt [101:138]
override fun generate(context: Context, render: Render<Node>): ReadonlyArray<GeneratedFile> {
val name = "ResourceRecordType"
val body = rrtypes.joinToString("\n") {
val marker = if (it in stringRrtypes) "StringRecord" else ""
"sealed interface $it : $name${ifPresent(marker) { ", $marker"}}"
}
val companionBody = rrtypes.joinToString("\n") {
"""
@seskar.js.JsValue("$it")
val ${it}: $it
""".trimIndent()
}
val fileBody = """
sealed external interface $name {
sealed interface StringRecord : $name
$body
companion object {
$companionBody
}
}
""".trimIndent()
val declaration = DerivedDeclaration(
sourceFileName,
namespace,
fileName = "${name}.kt",
fileBody,
)
return generateDerivedDeclarations(promiseApiDeclarations.toTypedArray() + declaration, context)
}