[Gradle, JS] Add types into public package json

^KT-40753 fixed
This commit is contained in:
Ilya Goncharov
2020-08-21 17:39:37 +03:00
parent 39059c103a
commit fe72d46fee
2 changed files with 11 additions and 0 deletions
@@ -33,6 +33,8 @@ class PackageJson(
var resolutions: Map<String, String>? = null
var types: String? = null
@Suppress("USELESS_ELVIS")
val devDependencies = mutableMapOf<String, String>()
get() = field ?: mutableMapOf()
@@ -11,6 +11,8 @@ import org.gradle.api.tasks.Nested
import org.gradle.api.tasks.OutputFile
import org.gradle.api.tasks.TaskAction
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.ir.GENERATE_D_TS
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject.Companion.PACKAGE_JSON
import org.jetbrains.kotlin.gradle.utils.property
import java.io.File
@@ -53,7 +55,14 @@ constructor(
@TaskAction
fun resolve() {
val compilation = npmProject.compilation
packageJson(npmProject, realExternalDependencies).let { packageJson ->
packageJson.main = "${npmProject.name}.js"
if (compilation is KotlinJsIrCompilation) {
packageJson.types = "${npmProject.name}.d.ts"
}
packageJson.apply {
listOf(