override fun generate()

in kotlin-node/karakum/src/jsMain/kotlin/node/karakum/plugins/InspectorSessionMethodPlugin.kt [68:103]


    override fun generate(context: Context, render: Render<Node>): ReadonlyArray<GeneratedFile> {
        val name = "SessionMethod"

        val entries = methods.map { eventName ->
            val key = constIdentifier(eventName)
            key to eventName
        }

        val body = entries.joinToString("\n") { (key) -> "sealed interface $key : $name" }

        val companionBody = entries.joinToString("\n") { (key, value) ->
            """
                @seskar.js.JsValue("$value")
                val ${key}: $key
            """.trimIndent()
        }

        val fileBody = """
            sealed external interface $name {
            $body

            companion object {
            $companionBody
            }
            }
        """.trimIndent()

        val declaration = DerivedDeclaration(
            sourceFileName,
            namespace,
            fileName = "${name}.kt",
            fileBody,
        )

        return generateDerivedDeclarations(arrayOf(declaration), context)
    }