[Gradle, JS] KotlinDependencyHandler extends from KotlinNpmDependencyHandler to provide these functions in interface

#KT-38683 fixed
This commit is contained in:
Ilya Goncharov
2020-05-07 12:34:09 +03:00
parent 4fb1e4614d
commit efe70da594
3 changed files with 20 additions and 22 deletions
@@ -11,7 +11,7 @@ import org.gradle.api.artifacts.ExternalModuleDependency
import org.gradle.api.artifacts.ProjectDependency import org.gradle.api.artifacts.ProjectDependency
import org.gradle.util.ConfigureUtil import org.gradle.util.ConfigureUtil
interface KotlinDependencyHandler { interface KotlinDependencyHandler : KotlinNpmDependencyHandler {
fun api(dependencyNotation: Any): Dependency? fun api(dependencyNotation: Any): Dependency?
fun api(dependencyNotation: String, configure: ExternalModuleDependency.() -> Unit): ExternalModuleDependency fun api(dependencyNotation: String, configure: ExternalModuleDependency.() -> Unit): ExternalModuleDependency
fun <T : Dependency> api(dependency: T, configure: T.() -> Unit): T fun <T : Dependency> api(dependency: T, configure: T.() -> Unit): T
@@ -11,7 +11,6 @@ import org.gradle.api.artifacts.ExternalModuleDependency
import org.gradle.api.artifacts.ProjectDependency import org.gradle.api.artifacts.ProjectDependency
import org.jetbrains.kotlin.gradle.plugin.HasKotlinDependencies import org.jetbrains.kotlin.gradle.plugin.HasKotlinDependencies
import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler
import org.jetbrains.kotlin.gradle.plugin.KotlinNpmDependencyHandler
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency
import org.jetbrains.kotlin.gradle.targets.js.npm.directoryNpmDependency import org.jetbrains.kotlin.gradle.targets.js.npm.directoryNpmDependency
import org.jetbrains.kotlin.gradle.targets.js.npm.moduleName import org.jetbrains.kotlin.gradle.targets.js.npm.moduleName
@@ -21,8 +20,7 @@ import java.io.File
class DefaultKotlinDependencyHandler( class DefaultKotlinDependencyHandler(
val parent: HasKotlinDependencies, val parent: HasKotlinDependencies,
val project: Project val project: Project
) : KotlinDependencyHandler, ) : KotlinDependencyHandler {
KotlinNpmDependencyHandler {
override fun api(dependencyNotation: Any): Dependency? = override fun api(dependencyNotation: Any): Dependency? =
addDependencyByAnyNotation(parent.apiConfigurationName, dependencyNotation) addDependencyByAnyNotation(parent.apiConfigurationName, dependencyNotation)
@@ -22,6 +22,24 @@ interface NpmDependencyExtension {
operator fun invoke(directory: File): NpmDependency operator fun invoke(directory: File): NpmDependency
} }
internal fun Project.addNpmDependencyExtension() {
val extensions = (dependencies as ExtensionAware).extensions
NpmDependency.Scope.values()
.forEach { scope ->
val extension = scope.name
.removePrefix(NpmDependency.Scope.NORMAL.name)
.toLowerCase()
extensions
.add(
TypeOf.typeOf<NpmDependencyExtension>(NpmDependencyExtension::class.java),
lowerCamelCaseName(extension, "npm"),
DefaultNpmDependencyExtension(this, scope)
)
}
}
private class DefaultNpmDependencyExtension( private class DefaultNpmDependencyExtension(
private val project: Project, private val project: Project,
private val scope: NpmDependency.Scope private val scope: NpmDependency.Scope
@@ -94,21 +112,3 @@ private class DefaultNpmDependencyExtension(
) )
} }
} }
internal fun Project.addNpmDependencyExtension() {
val extensions = (dependencies as ExtensionAware).extensions
NpmDependency.Scope.values()
.forEach { scope ->
val extension = scope.name
.removePrefix(NpmDependency.Scope.NORMAL.name)
.toLowerCase()
extensions
.add(
TypeOf.typeOf<NpmDependencyExtension>(NpmDependencyExtension::class.java),
lowerCamelCaseName(extension, "npm"),
DefaultNpmDependencyExtension(this, scope)
)
}
}