[Gradle, JS] Update version in package.json with file dependency
^KT-40093 fixed
This commit is contained in:
+13
-4
@@ -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.GradleNodeModule
|
||||||
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.PackageJson
|
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 org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinCompilationNpmResolution
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@@ -18,7 +19,7 @@ class YarnImportedPackagesVersionResolver(
|
|||||||
private val npmProjects: Collection<KotlinCompilationNpmResolution>,
|
private val npmProjects: Collection<KotlinCompilationNpmResolution>,
|
||||||
private val nodeJsWorldDir: File
|
private val nodeJsWorldDir: File
|
||||||
) {
|
) {
|
||||||
private val resolvedVersion = mutableMapOf<String, String>()
|
private val resolvedVersion = mutableMapOf<String, ResolvedNpmDependency>()
|
||||||
private val importedProjectWorkspaces = mutableListOf<String>()
|
private val importedProjectWorkspaces = mutableListOf<String>()
|
||||||
private val externalModules = npmProjects.flatMapTo(mutableSetOf()) {
|
private val externalModules = npmProjects.flatMapTo(mutableSetOf()) {
|
||||||
it.externalGradleDependencies
|
it.externalGradleDependencies
|
||||||
@@ -48,7 +49,10 @@ class YarnImportedPackagesVersionResolver(
|
|||||||
"Only latest version will be used."
|
"Only latest version will be used."
|
||||||
)
|
)
|
||||||
val selected = sorted.last()
|
val selected = sorted.last()
|
||||||
resolvedVersion[name] = selected.version
|
resolvedVersion[name] = ResolvedNpmDependency(
|
||||||
|
version = selected.version,
|
||||||
|
file = selected.path
|
||||||
|
)
|
||||||
selected
|
selected
|
||||||
} else versions.single()
|
} else versions.single()
|
||||||
|
|
||||||
@@ -89,11 +93,16 @@ class YarnImportedPackagesVersionResolver(
|
|||||||
var doneSomething = false
|
var doneSomething = false
|
||||||
map.iterator().forEachRemaining {
|
map.iterator().forEachRemaining {
|
||||||
val resolved = resolvedVersion[it.key]
|
val resolved = resolvedVersion[it.key]
|
||||||
if (resolved != null && it.value != resolved) {
|
if (resolved != null && it.value != resolved.version) {
|
||||||
it.setValue(resolved)
|
it.setValue(fileVersion(resolved.file))
|
||||||
doneSomething = true
|
doneSomething = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return doneSomething
|
return doneSomething
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private data class ResolvedNpmDependency(
|
||||||
|
val version: String,
|
||||||
|
val file: File
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user