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