[Gradle, JS] Use set in task requirements

This commit is contained in:
Ilya Goncharov
2020-06-10 16:04:36 +03:00
parent 464c8eb77a
commit e51874d46a
9 changed files with 17 additions and 16 deletions
@@ -24,8 +24,8 @@ abstract class AbstractDukatTask(
get() = true
@get:Internal
override val requiredNpmDependencies: Collection<RequiredKotlinJsDependency>
get() = listOf(nodeJs.versions.dukat)
override val requiredNpmDependencies: Set<RequiredKotlinJsDependency>
get() = setOf(nodeJs.versions.dukat)
/**
* Package name for the generated file (by default filename.d.ts renamed to filename.d.kt)
@@ -44,8 +44,8 @@ constructor(
get() = true
@get:Internal
override val requiredNpmDependencies: Collection<RequiredKotlinJsDependency>
get() = mutableListOf<RequiredKotlinJsDependency>().also {
override val requiredNpmDependencies: Set<RequiredKotlinJsDependency>
get() = mutableSetOf<RequiredKotlinJsDependency>().also {
if (sourceMapStackTraces) {
it.add(nodeJs.versions.sourceMapSupport)
}
@@ -128,14 +128,14 @@ open class NodeJsRootExtension(val rootProject: Project) : ConfigurationPhaseAwa
}
class TasksRequirements {
val byTask = mutableMapOf<RequiresNpmDependencies, Collection<RequiredKotlinJsDependency>>()
val byCompilation = mutableMapOf<KotlinJsCompilation, MutableList<RequiresNpmDependencies>>()
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.toList()
val requirements = task.requiredNpmDependencies
byTask[task] = requirements
@@ -1,5 +1,5 @@
/*
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
* 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.
*/
@@ -9,7 +9,8 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
interface RequiresNpmDependencies {
val compilation: KotlinJsCompilation
val nodeModulesRequired: Boolean
val requiredNpmDependencies: Collection<RequiredKotlinJsDependency>
val requiredNpmDependencies: Set<RequiredKotlinJsDependency>
}
@@ -69,7 +69,7 @@ constructor(
override val nodeModulesRequired: Boolean
@Internal get() = testFramework!!.nodeModulesRequired
override val requiredNpmDependencies: Collection<RequiredKotlinJsDependency>
override val requiredNpmDependencies: Set<RequiredKotlinJsDependency>
@Internal get() = testFramework!!.requiredNpmDependencies
@Deprecated("Use useMocha instead", ReplaceWith("useMocha()"))
@@ -52,8 +52,8 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) :
project.projectDir.resolve("karma.config.d")
}
override val requiredNpmDependencies: Collection<RequiredKotlinJsDependency>
get() = requiredDependencies.toList()
override val requiredNpmDependencies: Set<RequiredKotlinJsDependency>
get() = requiredDependencies
override val settingsState: String
get() = "KotlinKarma($config)"
@@ -30,8 +30,8 @@ class KotlinMocha(override val compilation: KotlinJsCompilation) :
override val settingsState: String
get() = "mocha"
override val requiredNpmDependencies: Collection<RequiredKotlinJsDependency>
get() = listOf(
override val requiredNpmDependencies: Set<RequiredKotlinJsDependency>
get() = setOf(
versions.kotlinJsTestRunner,
versions.mocha,
versions.sourceMapSupport
@@ -198,7 +198,7 @@ constructor(
override val nodeModulesRequired: Boolean
@Internal get() = true
override val requiredNpmDependencies: Collection<RequiredKotlinJsDependency>
override val requiredNpmDependencies: Set<RequiredKotlinJsDependency>
@Internal get() = createRunner().config.getRequiredDependencies(versions)
@TaskAction
@@ -40,7 +40,7 @@ data class KotlinWebpackConfig(
val resolveFromModulesFirst: Boolean = false
) {
fun getRequiredDependencies(versions: NpmVersions) =
mutableListOf<RequiredKotlinJsDependency>().also {
mutableSetOf<RequiredKotlinJsDependency>().also {
it.add(versions.kotlinJsTestRunner)
it.add(versions.webpack)
it.add(versions.webpackCli)