[Gradle, JS] Extract TasksRequirements.kt

This commit is contained in:
Ilya Goncharov
2020-06-10 16:11:52 +03:00
parent e51874d46a
commit 8f156f3609
2 changed files with 28 additions and 21 deletions
@@ -11,12 +11,9 @@ import org.gradle.api.tasks.TaskProvider
import org.jetbrains.kotlin.gradle.internal.ConfigurationPhaseAware
import org.jetbrains.kotlin.gradle.logging.kotlinInfo
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.NpmVersions
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
import org.jetbrains.kotlin.gradle.targets.js.npm.KotlinNpmResolutionManager
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmApi
import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies
import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.PACKAGE_JSON_UMBRELLA_TASK_NAME
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmInstallTask
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.RootPackageJsonTask
@@ -125,22 +122,4 @@ open class NodeJsRootExtension(val rootProject: Project) : ConfigurationPhaseAwa
companion object {
const val EXTENSION_NAME: String = "kotlinNodeJs"
}
}
class TasksRequirements {
val byTask = mutableMapOf<RequiresNpmDependencies, Set<RequiredKotlinJsDependency>>()
private val byCompilation = mutableMapOf<KotlinJsCompilation, MutableList<RequiresNpmDependencies>>()
fun getTaskRequirements(compilation: KotlinJsCompilation): Collection<RequiresNpmDependencies> =
byCompilation[compilation] ?: listOf()
fun addTaskRequirements(task: RequiresNpmDependencies) {
val requirements = task.requiredNpmDependencies
byTask[task] = requirements
byCompilation
.getOrPut(task.compilation) { mutableListOf() }
.add(task)
}
}
@@ -0,0 +1,28 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
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.RequiresNpmDependencies
class TasksRequirements {
val byTask = mutableMapOf<RequiresNpmDependencies, Set<RequiredKotlinJsDependency>>()
private val byCompilation = mutableMapOf<KotlinJsCompilation, MutableList<RequiresNpmDependencies>>()
fun getTaskRequirements(compilation: KotlinJsCompilation): Collection<RequiresNpmDependencies> =
byCompilation[compilation] ?: listOf()
fun addTaskRequirements(task: RequiresNpmDependencies) {
val requirements = task.requiredNpmDependencies
byTask[task] = requirements
byCompilation
.getOrPut(task.compilation) { mutableListOf() }
.add(task)
}
}