From 3c0965802a5a6dcd071295a5827ab3f51411cfa3 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 7 May 2020 15:58:50 +0300 Subject: [PATCH] [Gradle, JS] Extract name only npm dependency to separate interface #KT-38683 fixed --- .../gradle/targets/js/npm/NpmDependencyExtension.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependencyExtension.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependencyExtension.kt index 8c7d0360ab1..9b85e354346 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependencyExtension.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmDependencyExtension.kt @@ -13,8 +13,6 @@ import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import java.io.File interface NpmDependencyExtension { - operator fun invoke(name: String): NpmDependency - operator fun invoke(name: String, version: String): NpmDependency operator fun invoke(name: String, directory: File): NpmDependency @@ -22,6 +20,10 @@ interface NpmDependencyExtension { operator fun invoke(directory: File): NpmDependency } +interface NpmDependencyWithNameOnlyExtension : NpmDependencyExtension { + operator fun invoke(name: String): NpmDependency +} + internal fun Project.addNpmDependencyExtension() { val extensions = (dependencies as ExtensionAware).extensions @@ -33,7 +35,7 @@ internal fun Project.addNpmDependencyExtension() { extensions .add( - TypeOf.typeOf(NpmDependencyExtension::class.java), + TypeOf.typeOf(NpmDependencyWithNameOnlyExtension::class.java), lowerCamelCaseName(extension, "npm"), DefaultNpmDependencyExtension(this, scope) ) @@ -43,7 +45,9 @@ internal fun Project.addNpmDependencyExtension() { private class DefaultNpmDependencyExtension( private val project: Project, private val scope: NpmDependency.Scope -) : NpmDependencyExtension, Closure(project.dependencies) { +) : NpmDependencyExtension, + NpmDependencyWithNameOnlyExtension, + Closure(project.dependencies) { override fun invoke(name: String): NpmDependency = onlyNameNpmDependency(name)