diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTarget.kt index 1a31f70b305..fec5a602de7 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTarget.kt @@ -187,4 +187,8 @@ constructor( override fun useEsModules() { error("ES modules are not supported in legacy JS compiler. Please, use IR one instead.") } + + override fun generateTypeScriptDefinitions() { + project.logger.warn("Legacy compiler does not support generation of TypeScript Definitions") + } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/KotlinJsTargetDsl.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/KotlinJsTargetDsl.kt index 861e62f05ee..b4b4b1d3eff 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/KotlinJsTargetDsl.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/KotlinJsTargetDsl.kt @@ -55,6 +55,8 @@ interface KotlinJsTargetDsl : KotlinTarget { fun useCommonJs() fun useEsModules() + fun generateTypeScriptDefinitions() + val binaries: KotlinJsBinaryContainer @Deprecated( diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt index 54007775a3f..2aea632e187 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt @@ -384,4 +384,17 @@ constructor( sourceMap = true sourceMapEmbedSources = "never" } + + override fun generateTypeScriptDefinitions() { + compilations + .all { + binaries + .withType(JsIrBinary::class.java) + .all { + it.linkTask.configure { linkTask -> + linkTask.compilerOptions.freeCompilerArgs.add(GENERATE_D_TS) + } + } + } + } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinJsIrLinkConfig.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinJsIrLinkConfig.kt index 10a6c8eb394..056262c1c52 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinJsIrLinkConfig.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinJsIrLinkConfig.kt @@ -61,15 +61,13 @@ internal open class KotlinJsIrLinkConfig( configureOptions( compilation, ENABLE_DCE, - GENERATE_D_TS, MINIMIZED_MEMBER_NAMES ) } KotlinJsBinaryMode.DEVELOPMENT -> { configureOptions( - compilation, - GENERATE_D_TS + compilation ) } else -> throw InvalidUserDataException(