From e6bfe9a70246035cbe372a256ddb35d48030eba6 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 10 Dec 2020 16:44:36 +0300 Subject: [PATCH] [Gradle, JS] Npm dependencies as transient, and store only declarations --- .../kotlin/gradle/targets/js/npm/NpmDependency.kt | 3 --- .../gradle/targets/js/npm/NpmDependencyDeclaration.kt | 3 +++ .../js/npm/resolver/KotlinCompilationNpmResolver.kt | 11 +++++++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt index 7c9c0a15ee8..37f1dc0bfd1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependency.kt @@ -111,9 +111,6 @@ data class NpmDependency( } override fun getReason(): String? = reason - - fun uniqueRepresentation() = - "$scope $key:$version, $generateExternals" } internal fun directoryNpmDependency( diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependencyDeclaration.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependencyDeclaration.kt index f01d90edc15..bfc64d2ed38 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependencyDeclaration.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependencyDeclaration.kt @@ -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, diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt index dff0a5a262c..a3694c270c3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt @@ -367,9 +367,16 @@ internal class KotlinCompilationNpmResolver( val internalCompositeDependencies: Collection, @Transient val externalGradleDependencies: Collection, + @Transient val externalNpmDependencies: Collection, val fileCollectionDependencies: Collection ) { + 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,