[Stdlib] Generate Stdlib API reference for webMain source set + minor renaming
^KT-79489 Fixed
Co-authored-by: Filipp Zhinkin <filipp.zhinkin@jetbrains.com>
Merge-request: KT-MR-22746
Merged-by: Artem Kobzar <Artem.Kobzar@jetbrains.com>
diff --git a/libraries/stdlib/build.gradle.kts b/libraries/stdlib/build.gradle.kts
index fb2b64a..5fad59d 100644
--- a/libraries/stdlib/build.gradle.kts
+++ b/libraries/stdlib/build.gradle.kts
@@ -414,7 +414,7 @@
val webMain by creating {
dependsOn(commonMain.get())
kotlin {
- srcDir("jsAndWasmJsCommon/src")
+ srcDir("common-js-wasmjs/src")
}
}
diff --git a/libraries/stdlib/jsAndWasmJsCommon/src/kotlin/JsInterop.kt b/libraries/stdlib/common-js-wasmjs/src/kotlin/JsInterop.kt
similarity index 100%
rename from libraries/stdlib/jsAndWasmJsCommon/src/kotlin/JsInterop.kt
rename to libraries/stdlib/common-js-wasmjs/src/kotlin/JsInterop.kt
diff --git a/libraries/stdlib/common-js-wasmjs/src/kotlin/js/ExperimentalWasmJsInterop.kt b/libraries/stdlib/common-js-wasmjs/src/kotlin/js/ExperimentalWasmJsInterop.kt
new file mode 100644
index 0000000..a30ae82
--- /dev/null
+++ b/libraries/stdlib/common-js-wasmjs/src/kotlin/js/ExperimentalWasmJsInterop.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2010-2025 JetBrains s.r.o. and Kotlin Programming Language contributors.
+ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
+ */
+
+package kotlin.js
+
+/**
+ * Marks API related to interoperability with JS as experimental.
+ *
+ * Note that the behavior of such API may be changed in the future.
+ *
+ * Usages of such API will be reported as warnings unless an explicit opt-in with
+ * the [OptIn] annotation, e.g. `@OptIn(ExperimentalWasmJsInterop::class)`,
+ * or with the `-opt-in=kotlin.js.ExperimentalWasmJsInterop` compiler option is given.
+ */
+@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
+@MustBeDocumented
+@Retention(AnnotationRetention.BINARY)
+@SinceKotlin("2.2")
+@Target(
+ AnnotationTarget.CLASS,
+ AnnotationTarget.FUNCTION,
+ AnnotationTarget.PROPERTY,
+ AnnotationTarget.TYPEALIAS
+)
+public annotation class ExperimentalWasmJsInterop
diff --git a/libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsAny.kt b/libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsAny.kt
similarity index 100%
rename from libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsAny.kt
rename to libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsAny.kt
diff --git a/libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsArray.kt b/libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsArray.kt
similarity index 100%
rename from libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsArray.kt
rename to libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsArray.kt
diff --git a/libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsBigInt.kt b/libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsBigInt.kt
similarity index 100%
rename from libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsBigInt.kt
rename to libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsBigInt.kt
diff --git a/libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsBoolean.kt b/libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsBoolean.kt
similarity index 100%
rename from libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsBoolean.kt
rename to libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsBoolean.kt
diff --git a/libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsError.kt b/libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsError.kt
similarity index 100%
rename from libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsError.kt
rename to libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsError.kt
diff --git a/libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsException.kt b/libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsException.kt
similarity index 100%
rename from libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsException.kt
rename to libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsException.kt
diff --git a/libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsNumber.kt b/libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsNumber.kt
similarity index 100%
rename from libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsNumber.kt
rename to libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsNumber.kt
diff --git a/libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsReference.kt b/libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsReference.kt
similarity index 100%
rename from libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsReference.kt
rename to libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsReference.kt
diff --git a/libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsString.kt b/libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsString.kt
similarity index 100%
rename from libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/JsString.kt
rename to libraries/stdlib/common-js-wasmjs/src/kotlin/js/JsString.kt
diff --git a/libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/Promise.kt b/libraries/stdlib/common-js-wasmjs/src/kotlin/js/Promise.kt
similarity index 100%
rename from libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/Promise.kt
rename to libraries/stdlib/common-js-wasmjs/src/kotlin/js/Promise.kt
diff --git a/libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/annotations.kt b/libraries/stdlib/common-js-wasmjs/src/kotlin/js/annotations.kt
similarity index 78%
rename from libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/annotations.kt
rename to libraries/stdlib/common-js-wasmjs/src/kotlin/js/annotations.kt
index acd44af..7888e49 100644
--- a/libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/annotations.kt
+++ b/libraries/stdlib/common-js-wasmjs/src/kotlin/js/annotations.kt
@@ -6,27 +6,6 @@
package kotlin.js
/**
- * Marks API related to interoperability with JS as experimental.
- *
- * Note that the behavior of such API may be changed in the future.
- *
- * Usages of such API will be reported as warnings unless an explicit opt-in with
- * the [OptIn] annotation, e.g. `@OptIn(ExperimentalWasmJsInterop::class)`,
- * or with the `-opt-in=kotlin.js.ExperimentalWasmJsInterop` compiler option is given.
- */
-@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
-@MustBeDocumented
-@Retention(AnnotationRetention.BINARY)
-@SinceKotlin("2.2")
-@Target(
- AnnotationTarget.CLASS,
- AnnotationTarget.FUNCTION,
- AnnotationTarget.PROPERTY,
- AnnotationTarget.TYPEALIAS
-)
-public annotation class ExperimentalWasmJsInterop
-
-/**
* Denotes an `external` declaration that must be imported from JavaScript module.
*
* The annotation can be used on top-level external declarations (classes, properties, functions) and files.
diff --git a/libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/core.kt b/libraries/stdlib/common-js-wasmjs/src/kotlin/js/core.kt
similarity index 100%
rename from libraries/stdlib/jsAndWasmJsCommon/src/kotlin/js/core.kt
rename to libraries/stdlib/common-js-wasmjs/src/kotlin/js/core.kt
diff --git a/libraries/stdlib/js-ir-minimal-for-test/build.gradle.kts b/libraries/stdlib/js-ir-minimal-for-test/build.gradle.kts
index 083bd03e..5fbfad8 100644
--- a/libraries/stdlib/js-ir-minimal-for-test/build.gradle.kts
+++ b/libraries/stdlib/js-ir-minimal-for-test/build.gradle.kts
@@ -108,17 +108,18 @@
into(layout.buildDirectory.dir("commonNonJvmMainSources"))
}
-val jsAndWasmJsCommonSources by task<Sync> {
- val jsAndWasmJsDir = file("$rootDir/libraries/stdlib/jsAndWasmJsCommon")
+val commonJsAndWasmJsSources by task<Sync> {
+ val jsAndWasmJsDir = file("$rootDir/libraries/stdlib/common-js-wasmjs")
from("$jsAndWasmJsDir/src") {
include(
"kotlin/js/annotations.kt",
+ "kotlin/js/ExperimentalWasmJsInterop.kt",
"kotlin/js/core.kt",
)
}
- into(layout.buildDirectory.dir("jsAndWasmJsCommon"))
+ into(layout.buildDirectory.dir("commonJsAndWasmJsSources"))
}
val jsMainSources by task<Sync> {
@@ -186,12 +187,12 @@
dependsOn(commonMain)
kotlin.srcDir(files(commonNonJvmMainSources.map { it.destinationDir }))
}
- val jsAndWasmJsCommon by creating {
+ val commonJsAndWasmJs by creating {
dependsOn(commonMain)
- kotlin.srcDir(files(jsAndWasmJsCommonSources.map { it.destinationDir }))
+ kotlin.srcDir(files(commonJsAndWasmJsSources.map { it.destinationDir }))
}
named("jsMain") {
- dependsOn(jsAndWasmJsCommon)
+ dependsOn(commonJsAndWasmJs)
dependsOn(commonNonJvmMain)
kotlin.srcDir(files(jsMainSources.map { it.destinationDir }))
kotlin.srcDir("js-src")
diff --git a/libraries/tools/kotlin-stdlib-docs/build.gradle.kts b/libraries/tools/kotlin-stdlib-docs/build.gradle.kts
index 4589e8b..cfa4cb8 100644
--- a/libraries/tools/kotlin-stdlib-docs/build.gradle.kts
+++ b/libraries/tools/kotlin-stdlib-docs/build.gradle.kts
@@ -139,6 +139,10 @@
sourceRoots.from("$kotlin_stdlib_dir/js/src/kotlin")
sourceRoots.from("$kotlin_stdlib_dir/js/builtins")
+ // We don't generate docs for the intermediate webMain source set, so to make
+ // regular declarations from it visible, they are explicitly included in js and wasm-js source sets.
+ sourceRoots.from("$kotlin_stdlib_dir/common-js-wasmjs/src/kotlin/JsInterop.kt")
+ sourceRoots.from("$kotlin_stdlib_dir/common-js-wasmjs/src/kotlin/js/ExperimentalWasmJsInterop.kt")
// builtin sources that are copied from common builtins during JS stdlib build
listOf(
@@ -188,6 +192,10 @@
sourceRoots.from("$kotlin_stdlib_dir/wasm/js/builtins")
sourceRoots.from("$kotlin_stdlib_dir/wasm/js/internal")
sourceRoots.from("$kotlin_stdlib_dir/wasm/js/src")
+ // We don't generate docs for the intermediate webMain source set, so to make
+ // regular declarations from it visible, they are explicitly included in js and wasm-js source sets.
+ sourceRoots.from("$kotlin_stdlib_dir/common-js-wasmjs/src/kotlin/JsInterop.kt")
+ sourceRoots.from("$kotlin_stdlib_dir/common-js-wasmjs/src/kotlin/js/ExperimentalWasmJsInterop.kt")
// builtin sources that are copied from common builtins during Wasm stdlib build
listOf(
@@ -613,4 +621,4 @@
}
}
}
-}
\ No newline at end of file
+}