fun generateKotlinDeclarations()

in build-logic/generatorlegacybuild/src/main/kotlin/karakum/react/Generator.kt [68:107]


fun generateKotlinDeclarations(
    definitionsFile: File,
    eventsSourceFile: File,
    sourceDir: File,
) {
    EventDataRegistry.sourceFile = eventsSourceFile

    for ((name, body, pkg) in convertDefinitions(definitionsFile)) {
        if (name in EXCLUDED_TYPES) {
            continue
        }

        val finalPkg = when {
            name.startsWith("Aria") -> Package.ARIA
            name in DOM_TYPES -> Package.DOM
            "SVG" in name -> Package.SVG
            name == "PointerType" -> Package.EVENTS
            name == "ModifierKey" -> Package.EVENTS
            else -> pkg
        }

        val content = when (finalPkg) {
            Package.HTML,
            Package.SVG,
            Package.DOM,
                -> ARIA_IMPORTS + "\n" + DOM_IMPORTS + "\n" + SESKAR_IMPORTS + "\n" + body

            Package.ARIA,
                -> SESKAR_IMPORTS + "\n" + "import web.dom.ElementId" + "\n" + body

            else -> SESKAR_IMPORTS + "\n" + body
        }

        val targetDir = sourceDir.resolve(finalPkg.path)
            .also { it.mkdirs() }

        targetDir.resolve("${name}.kt")
            .writeCode(fileContent(finalPkg, "", content))
    }
}