From 2e2a5a015645f95f6fec6781037b15b964379c27 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Tue, 7 Jul 2020 23:31:25 +0300 Subject: [PATCH] [Gradle, JS] Update version in package.json with file dependency ^KT-40093 fixed --- .../YarnImportedPackagesVersionResolver.kt | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnImportedPackagesVersionResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnImportedPackagesVersionResolver.kt index 07996dd3bdb..ea8dff5f895 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnImportedPackagesVersionResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnImportedPackagesVersionResolver.kt @@ -10,6 +10,7 @@ import org.gradle.api.Project import org.jetbrains.kotlin.gradle.targets.js.npm.GradleNodeModule import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson +import org.jetbrains.kotlin.gradle.targets.js.npm.fileVersion import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinCompilationNpmResolution import java.io.File @@ -18,7 +19,7 @@ class YarnImportedPackagesVersionResolver( private val npmProjects: Collection, private val nodeJsWorldDir: File ) { - private val resolvedVersion = mutableMapOf() + private val resolvedVersion = mutableMapOf() private val importedProjectWorkspaces = mutableListOf() private val externalModules = npmProjects.flatMapTo(mutableSetOf()) { it.externalGradleDependencies @@ -48,7 +49,10 @@ class YarnImportedPackagesVersionResolver( "Only latest version will be used." ) val selected = sorted.last() - resolvedVersion[name] = selected.version + resolvedVersion[name] = ResolvedNpmDependency( + version = selected.version, + file = selected.path + ) selected } else versions.single() @@ -89,11 +93,16 @@ class YarnImportedPackagesVersionResolver( var doneSomething = false map.iterator().forEachRemaining { val resolved = resolvedVersion[it.key] - if (resolved != null && it.value != resolved) { - it.setValue(resolved) + if (resolved != null && it.value != resolved.version) { + it.setValue(fileVersion(resolved.file)) doneSomething = true } } return doneSomething } -} \ No newline at end of file +} + +private data class ResolvedNpmDependency( + val version: String, + val file: File +) \ No newline at end of file