[Gradle, JS] Update version in package.json with file dependency
^KT-40093 fixed
This commit is contained in:
+14
-5
@@ -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<KotlinCompilationNpmResolution>,
|
||||
private val nodeJsWorldDir: File
|
||||
) {
|
||||
private val resolvedVersion = mutableMapOf<String, String>()
|
||||
private val resolvedVersion = mutableMapOf<String, ResolvedNpmDependency>()
|
||||
private val importedProjectWorkspaces = mutableListOf<String>()
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private data class ResolvedNpmDependency(
|
||||
val version: String,
|
||||
val file: File
|
||||
)
|
||||
Reference in New Issue
Block a user