From bcdc53d1c46b3fe66779a77896489b1463d8f2ec Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Mon, 5 Oct 2020 13:40:45 +0300 Subject: [PATCH] [Gradle, JS] Consider GString in npm dependencies parse in root dependencies ^KT-42462 fixed --- .../targets/js/npm/NpmDependencyExtension.kt | 16 ++++++++++++---- 1 file changed, 12 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 9febb5fa121..bc12c9337d6 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 @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.gradle.targets.js.npm import groovy.lang.Closure +import groovy.lang.GString import org.gradle.api.Project import org.gradle.api.plugins.ExtensionAware import org.gradle.api.reflect.TypeOf @@ -163,12 +164,15 @@ private abstract class NpmDependencyExtensionDelegate( override fun call(vararg args: Any?): NpmDependency { if (args.size > 3) npmDeclarationException(args) - val arg = args[0] - return when (arg) { + return when (val arg = args[0]) { is String -> withName( name = arg, args = *args ) + is GString -> withName( + name = arg.toString(), + args = *args + ) else -> processNonStringFirstArgument(arg, *args) } } @@ -176,10 +180,9 @@ private abstract class NpmDependencyExtensionDelegate( protected abstract fun processNonStringFirstArgument(arg: Any?, vararg args: Any?): NpmDependency private fun withName(name: String, vararg args: Any?): NpmDependency { - val arg1 = if (args.size > 1) args[1] else null val generateExternals = generateExternalsIfPossible(*args) - return when (arg1) { + return when (val arg1 = if (args.size > 1) args[1] else null) { null -> invoke( name = name ) @@ -188,6 +191,11 @@ private abstract class NpmDependencyExtensionDelegate( version = arg1, generateExternals = generateExternals ) + is GString -> invoke( + name = name, + version = arg1.toString(), + generateExternals = generateExternals + ) else -> processNamedNonStringSecondArgument( name, arg1,