From aab4fd72258048cfbdec8c3f0c8c3928283b22e8 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Tue, 9 Jun 2020 18:52:10 +0300 Subject: [PATCH] [Gradle, JS] Use unique representation for npm dependency --- .../jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt | 5 ++++- .../gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt index 03f2491dae2..f11933c5fd8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt @@ -87,7 +87,7 @@ data class NpmDependency( val key: String = name - override fun toString() = "$scope $key: $version, $generateExternals" + override fun toString() = "$key: $version" override fun getFiles(): FileCollection = project.files(resolve(true)) @@ -110,6 +110,9 @@ data class NpmDependency( } override fun getReason(): String? = reason + + fun uniqueRepresentation() = + "$scope $key:$version, $generateExternals" } internal fun directoryNpmDependency( diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt index aaa33814021..cbf595dfee3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt @@ -11,6 +11,7 @@ import org.gradle.api.tasks.* import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin +import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.KotlinCompilationNpmResolver import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.PACKAGE_JSON_UMBRELLA_TASK_NAME @@ -40,7 +41,8 @@ open class KotlinPackageJsonTask : DefaultTask() { .getTaskRequirements(compilation) .flatMap { it.requiredNpmDependencies } .map { it.createDependency(project) } - .map { it.toString() } + .filterIsInstance() + .map { it.uniqueRepresentation() } @get:Nested internal val producerInputs: KotlinCompilationNpmResolver.PackageJsonProducerInputs