Files
kotlin-fork/js/js.translator/testData/box/multiModule/exportFromModules.kt
T
2022-11-12 16:28:23 +01:00

58 lines
1.1 KiB
Kotlin
Vendored

// IGNORE_BACKEND_K2: JS_IR
// DONT_TARGET_EXACT_BACKEND: JS
// KJS_WITH_FULL_RUNTIME
// MODULE: ModuleA1
// NO_COMMON_FILES
// FILE: modulea1.kt
package demoPackage.a1
@JsExport
data class ModuleA1Class(private val string: String = "A1") {
override fun toString(): String = string
}
// MODULE: ModuleA2(ModuleA1)
// NO_COMMON_FILES
// FILE: modulea2.kt
package demoPackage.a2
import demoPackage.a1.ModuleA1Class
@JsExport
fun moduleA2Function() = ModuleA1Class("A2")
// MODULE: ModuleB
// NO_COMMON_FILES
// FILE: moduleb.kt
package demoPackage.b
@JsExport
fun moduleBFunction() = "B"
// MODULE: main(ModuleA2, ModuleB)
// MODULE_KIND: COMMON_JS
// FILE: main.kt
package mainPackage
import demoPackage.*
external interface JsResult {
val moduleA1: String
val moduleA2: String
val moduleB: String
}
@JsModule("lib")
external fun jsBox(): JsResult
fun box(): String {
assertEquals(demoPackage.b.moduleBFunction(), "B")
val res = jsBox()
assertEquals(res.moduleA1, "A1")
assertEquals(res.moduleA2, "A2")
assertEquals(res.moduleB, "B")
return "OK"
}