[Gradle, JS] KT-36784 Input as composite package.json
#KT-32466 fixed #KT-36784 fixed #KT-36864 fixed
This commit is contained in:
+16
-14
@@ -245,8 +245,8 @@ internal class KotlinCompilationNpmResolver(
|
||||
@get:Input
|
||||
val internalDependencies: Collection<String>,
|
||||
|
||||
@get:Input
|
||||
val internalCompositeDependencies: Collection<String>,
|
||||
@get:InputFiles
|
||||
val internalCompositeDependencies: Collection<File>,
|
||||
|
||||
@get:InputFiles
|
||||
val externalGradleDependencies: Collection<File>,
|
||||
@@ -265,7 +265,7 @@ internal class KotlinCompilationNpmResolver(
|
||||
val inputs: PackageJsonProducerInputs
|
||||
get() = PackageJsonProducerInputs(
|
||||
internalDependencies.map { it.npmProject.name },
|
||||
internalCompositeDependencies.map { it.includedBuild.projectDir.canonicalPath },
|
||||
internalCompositeDependencies.flatMap { it.getPackages() },
|
||||
externalGradleDependencies.map { it.artifact.file },
|
||||
externalNpmDependencies.map { "${it.scope} ${it.key}:${it.version}" }
|
||||
)
|
||||
@@ -279,23 +279,15 @@ internal class KotlinCompilationNpmResolver(
|
||||
resolver.gradleNodeModules.get(it.dependency, it.artifact.file)
|
||||
}
|
||||
|
||||
val compositeDependencies = internalCompositeDependencies.mapNotNull { dependency ->
|
||||
val packages = dependency.includedBuild
|
||||
.projectDir
|
||||
.resolve(nodeJs.projectPackagesDir.relativeTo(nodeJs.rootProject.rootDir))
|
||||
packages
|
||||
.list()
|
||||
?.map { fileName ->
|
||||
packages.resolve(fileName).resolve(PACKAGE_JSON)
|
||||
}
|
||||
?.map { file ->
|
||||
val compositeDependencies = internalCompositeDependencies.flatMap { dependency ->
|
||||
dependency.getPackages()
|
||||
.map { file ->
|
||||
resolver.compositeNodeModules.get(
|
||||
dependency.dependency,
|
||||
file
|
||||
)
|
||||
}
|
||||
}
|
||||
.flatten()
|
||||
.filterNotNull()
|
||||
|
||||
val packageJson = PackageJson(
|
||||
@@ -353,6 +345,16 @@ internal class KotlinCompilationNpmResolver(
|
||||
)
|
||||
}
|
||||
|
||||
private fun CompositeDependency.getPackages(): List<File> {
|
||||
return includedBuild
|
||||
.projectDir
|
||||
.resolve(nodeJs.projectPackagesDir.relativeTo(nodeJs.rootProject.rootDir))
|
||||
.list()
|
||||
?.map(::File)
|
||||
?.map { it.resolve(PACKAGE_JSON) }
|
||||
?: emptyList()
|
||||
}
|
||||
|
||||
// TODO: real versions conflict resolution
|
||||
private fun chooseVersion(oldVersion: String?, newVersion: String): String {
|
||||
// https://yarnpkg.com/lang/en/docs/dependency-versions/#toc-x-ranges
|
||||
|
||||
Reference in New Issue
Block a user