[Gradle, JS] Npm dependencies as transient, and store only declarations

This commit is contained in:
Ilya Goncharov
2020-12-10 16:44:36 +03:00
committed by Alexander Likhachev
parent b9aa577f84
commit e6bfe9a702
3 changed files with 12 additions and 5 deletions
@@ -111,9 +111,6 @@ data class NpmDependency(
}
override fun getReason(): String? = reason
fun uniqueRepresentation() =
"$scope $key:$version, $generateExternals"
}
internal fun directoryNpmDependency(
@@ -18,6 +18,9 @@ data class NpmDependencyDeclaration(
val generateExternals: Boolean
)
fun NpmDependencyDeclaration.uniqueRepresentation() =
"$scope $name:$version, $generateExternals"
internal fun NpmDependency.toDeclaration(): NpmDependencyDeclaration =
NpmDependencyDeclaration(
scope = this.scope,
@@ -367,9 +367,16 @@ internal class KotlinCompilationNpmResolver(
val internalCompositeDependencies: Collection<CompositeDependency>,
@Transient
val externalGradleDependencies: Collection<ExternalGradleDependency>,
@Transient
val externalNpmDependencies: Collection<NpmDependency>,
val fileCollectionDependencies: Collection<FileCollectionDependency>
) {
val externalNpmDependencyDeclarations by lazy {
externalNpmDependencies.map {
it.toDeclaration()
}
}
val fileExternalGradleDependencies by lazy {
externalGradleDependencies.map {
FileExternalGradleDependency(
@@ -385,7 +392,7 @@ internal class KotlinCompilationNpmResolver(
internalDependencies.map { it.npmProject.name },
internalCompositeDependencies.flatMap { it.getPackages() },
fileExternalGradleDependencies.map { it.file },
externalNpmDependencies.map { it.uniqueRepresentation() },
externalNpmDependencyDeclarations.map { it.uniqueRepresentation() },
fileCollectionDependencies.map { it.files }.flatMap { it.files }
)
@@ -424,7 +431,7 @@ internal class KotlinCompilationNpmResolver(
val toolsNpmDependencies = taskRequirements
.getCompilationNpmRequirements(compilationName)
val allNpmDependencies = externalNpmDependencies.map { it.toDeclaration() } + toolsNpmDependencies
val allNpmDependencies = externalNpmDependencyDeclarations + toolsNpmDependencies
val packageJson = packageJson(
npmName,