[Gradle, JS] Use unique representation for npm dependency

This commit is contained in:
Ilya Goncharov
2020-06-09 18:52:10 +03:00
parent 92c224b616
commit aab4fd7225
2 changed files with 7 additions and 2 deletions
@@ -87,7 +87,7 @@ data class NpmDependency(
val key: String = name val key: String = name
override fun toString() = "$scope $key: $version, $generateExternals" override fun toString() = "$key: $version"
override fun getFiles(): FileCollection = project.files(resolve(true)) override fun getFiles(): FileCollection = project.files(resolve(true))
@@ -110,6 +110,9 @@ data class NpmDependency(
} }
override fun getReason(): String? = reason override fun getReason(): String? = reason
fun uniqueRepresentation() =
"$scope $key:$version, $generateExternals"
} }
internal fun directoryNpmDependency( internal fun directoryNpmDependency(
@@ -11,6 +11,7 @@ import org.gradle.api.tasks.*
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation 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.NodeJsRootExtension
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin 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.npmProject
import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.KotlinCompilationNpmResolver import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.KotlinCompilationNpmResolver
import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.PACKAGE_JSON_UMBRELLA_TASK_NAME import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.PACKAGE_JSON_UMBRELLA_TASK_NAME
@@ -40,7 +41,8 @@ open class KotlinPackageJsonTask : DefaultTask() {
.getTaskRequirements(compilation) .getTaskRequirements(compilation)
.flatMap { it.requiredNpmDependencies } .flatMap { it.requiredNpmDependencies }
.map { it.createDependency(project) } .map { it.createDependency(project) }
.map { it.toString() } .filterIsInstance<NpmDependency>()
.map { it.uniqueRepresentation() }
@get:Nested @get:Nested
internal val producerInputs: KotlinCompilationNpmResolver.PackageJsonProducerInputs internal val producerInputs: KotlinCompilationNpmResolver.PackageJsonProducerInputs