[Gradle, JS] Move tranform from requiredNpmDependencies to TasksRequirements

This commit is contained in:
Ilya Goncharov
2020-06-10 16:28:07 +03:00
parent 8f156f3609
commit 4080bd1325
3 changed files with 18 additions and 17 deletions
@@ -7,22 +7,32 @@ package org.jetbrains.kotlin.gradle.targets.js.nodejs
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency
import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies
class TasksRequirements {
val byTask = mutableMapOf<RequiresNpmDependencies, Set<RequiredKotlinJsDependency>>()
private val byCompilation = mutableMapOf<KotlinJsCompilation, MutableList<RequiresNpmDependencies>>()
private val _byTask = mutableMapOf<RequiresNpmDependencies, Set<RequiredKotlinJsDependency>>()
private val byCompilation = mutableMapOf<KotlinJsCompilation, MutableSet<RequiresNpmDependencies>>()
fun getTaskRequirements(compilation: KotlinJsCompilation): Collection<RequiresNpmDependencies> =
byCompilation[compilation] ?: listOf()
val byTask: Map<RequiresNpmDependencies, Set<RequiredKotlinJsDependency>>
get() = _byTask
fun getCompilationNpmRequirements(compilation: KotlinJsCompilation): List<NpmDependency> =
byCompilation[compilation]
?.asSequence()
?.flatMap { it.requiredNpmDependencies.asSequence() }
?.map { it.createDependency(compilation.target.project) }
?.filterIsInstance<NpmDependency>()
?.toList()
?: listOf()
fun addTaskRequirements(task: RequiresNpmDependencies) {
val requirements = task.requiredNpmDependencies
byTask[task] = requirements
_byTask[task] = requirements
byCompilation
.getOrPut(task.compilation) { mutableListOf() }
.getOrPut(task.compilation) { mutableSetOf() }
.add(task)
}
}
@@ -315,12 +315,7 @@ internal class KotlinCompilationNpmResolver(
.filterNotNull()
val toolsNpmDependencies = nodeJs.taskRequirements
.getTaskRequirements(compilation)
.flatMap { requirement ->
requirement.requiredNpmDependencies
}
.map { it.createDependency(project) }
.filterIsInstance<NpmDependency>()
.getCompilationNpmRequirements(compilation)
val allNpmDependencies = externalNpmDependencies + toolsNpmDependencies
@@ -11,7 +11,6 @@ import org.gradle.api.tasks.*
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.KotlinCompilationNpmResolver
import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.PACKAGE_JSON_UMBRELLA_TASK_NAME
@@ -38,10 +37,7 @@ open class KotlinPackageJsonTask : DefaultTask() {
@get:Input
internal val toolsNpmDependencies: List<String>
get() = nodeJs.taskRequirements
.getTaskRequirements(compilation)
.flatMap { it.requiredNpmDependencies }
.map { it.createDependency(project) }
.filterIsInstance<NpmDependency>()
.getCompilationNpmRequirements(compilation)
.map { it.uniqueRepresentation() }
@get:Nested